どうも。

tsファイルとかいう謎フォーマットのファイルを何故か一杯お持ちで、サイズを減らしたいけど定期的に手動処理するのは面倒という人の局地向け記事です。

私の備忘なので、導入手順を一から書いていくような親切さなどかけらもございませんので、あしからず。

 前提

利用するソフトはこちら。

らんだむ★けんきゅうじょさんのAutoConvertと、それに使われるソフトもろもろです。

CMカットの設定もできますし、x264、NVEnc、QSVなどのエンコードテンプレートが入っており、とても便利です。

AutoConvertの導入手順は丁寧に説明されていますし、割愛します。

気をつける点としては、AviSynthのバージョンくらいですかね?

インストール済みだからいいやと思っていると、エンコ実行時にコケたりします。

設定ができ、手動ファイル入力でエンコードできたら、本題に入っていきます。

 

ラッピングバッチ作って入力を自動化

私の調べた範囲では、このソフトでできるのは、ファイルを手動で読み込んで、それをエンコードして吐き出してくれるところまで。

今回は特定フォルダにあるtsファイルを順番に自動で処理してくれるところを考えます。

早い話が、以下のバッチをAutoConverのacutil.batがあるフォルダに適当に配置して、[]中のパスを弄ってあげてください。

なお、私は技術力のカケラもない素人なので、バッチの作りとして正しいかなんて全く存じておりません。動けばええんやスタンス。

@echo off

cd %~dp0

for %%a in ([tsフォルダ]\*.err) do (
call acutil.bat “%%~dpna”
timeout /t 10
del “%%a”
del “%%~dpna”
del “%%~dpna.program.txt”
)
del /Q [AutoConvert]\temp\*
del /Q [tsフォルダ]\*.eraselogo_lssource.json

そのままコピーするとダブルクオーテーションとかがおかしくなったりしますが、適宜なおしてください。

バッチって何?って方は知りません。

 

簡単にですがやってることの説明を。

● cd %~dp0

バッチの配置フォルダにカレントディレクトリを移動するよ。
タスクスケジューラーで実行した時に使うよ。

● for %%a in ([tsフォルダ]\*.err) do (

[tsフォルダ]内の.errの拡張子を持つファイル名を順番に読み込むよ。
僕の環境ではtsファイルを出力し終わると~.ts.errというファイルが吐かれるよ。
tsファイル書き込み中に、バッチが読み込もうとしないように.tsではなく.errを読み込むようにしているよ。

● call acutil.bat “%%~dpna”

acutil.batにtsファイルのパスを渡すよ。
~.ts.errから.errが抜かれて渡されるよ。

● del “%%a”
● del “%%~dpna”
● del “%%~dpna.program.txt”

入力元のデータ.err、.ts、.program.txtを削除するよ。

● del /Q [AutoConvert]\temp\*

AutoConvertが作成したエンコードの一時ファイルを掃除するよ。

● del /Q [tsフォルダ]\*.eraselogo_lssource.json

AutoConvertが作成したエンコードのログを削除するよ。

 

スケジューラ登録

お察しの通り、あとはこのバッチをタスクスケジューラに登録して終了。

tsファイルを毎日自動でエンコードしてくれる環境のできあがり。

タスクスケジューラって何って方はググってどうぞ。

 

おわりに

以前、エンコードまでバッチで処理フローを作ってたんですが、

こいつが曲者で、番組名によったり、中身によったりで上手く動かず、定期的な確認が必要で運用が大変だったんです。

AutoConvertを使う方式に乗り換えて一ヶ月くらい経ちますが、処理に失敗したことはありません。作者さんに本当に感謝です。

僕がやったのは簡単なバッチ作成だけですが、全自動化のヒントになれば。