以下の方法ではAviUtlのプラグインで単一の動画ファイルをエンコードする。
「NVEnc + BATファイルでtsファイルをエンコードする。」
この派生で、フォルダ内の複数の動画ファイルをエンコードするには、
AviUtl Controlを使う方法
「AviUtlのプラグインでフォルダ内の動画を一括で自動的にハードウェア・エンコードする。」
AviUtl Encoderを使う方法
「AviUtl Encoder」
などの方法を試してきた。
記事を書いた時にはそれなりに納得していたのだと思うが、しばらくすると全く理解不能になっていたり、同じようにやってみてもうまく行かなくなっていたりする。
これから書く方法もどうせ時間が経ったらわけわからなくなるのかもしれないが、非常に原始的な手法だという点では時間経過にも耐えうるのではないかと思っている。
1.「NVEnc + BATファイルでtsファイルをエンコードする。」の方法でBATファイルを作成する。
例えばこんなものになる。
名前を仮にts encode.batとする。
1 |
NVEncC64.exe -c h264 -u performance --interlace tff --vbr 3500 --qp-init 20:23:25 --gop-len auto --vpp-nnedi --audio-source %1:copy -i %1 -o "%~n1_vbr3500.mp4" |
対象の動画ファイルをこのBATにドロップして使うので、第1の引数を示す「%1」がファイル名に該当する。
2.バッチファイルの中から別のバッチファイルを呼び出すCALLというコマンドを使う。
例えば以下のようなBATファイル(call.bat)を作ってts encode.batを呼ぶ。
1 2 3 4 5 6 7 8 9 10 11 12 |
call "ts encode.bat" "20230602_05.ts" call "ts encode.bat" "20230616_00.ts" call "ts encode.bat" "20230616_01.ts" call "ts encode.bat" "20230707_00.ts" call "ts encode.bat" "20230707_01.ts" call "ts encode.bat" "20230707_02.ts" call "ts encode.bat" "20230707_03.ts" call "ts encode.bat" "20230630_00.ts" call "ts encode.bat" "20230630_01.ts" call "ts encode.bat" "20230630_02.ts" call "ts encode.bat" "20230630_03.ts" call "ts encode.bat" "20230630_04.ts" |
3.あとはcall.batを実行すれば一覧にある動画のエンコードが自動的に行われる。
具体的な手順
ts encode.batの作成は「NVEnc + BATファイルでtsファイルをエンコードする。」に書いた通りなので省略する。
ts encode.batのpauseコマンドの行は削除しておく。
コマンドプロンプトで対象のあるフォルダへ行き、以下を実行する。
1 |
dir /b >call.bat |
call.batを秀丸などのテキスト・エディタで開いて余計な行を削除する。
改行(¥n)を
¥”¥ncall ¥”ts encode.bat¥” ¥”
と置換する。
これには正規表現の知識が必要。
以下のようになる。
最終行を1行目の先頭へ移動して出来上がり。
原始的だが、その分迷いどころが無くていい方法だと思っている。
Tweet