†ぽんこつビデオ工房†
作成開始日 2022.07.29
最終更新日 2022.12.30
もうちょっと、具体的に言うと−−
HDDレコーダーで録画した動画ファイル(VRO新OB仁peg2)をAvidemuxでフレーム単位編集して、そのプロジェクトファイルのデータを元に、ffmpegで実際の変換を掛けているのだが(こうした方が圧倒的に速く奇麗に変換できる)、このとき、生のVROや、VROをffmpegで素通し変換したmkvやaviを使用すると、カット部分に大きな誤差が発生してしまう。
これを防ぐには、ffmpegでいったんFFmpeg4(-qscale 0)に変換してから、編集処理を行うと良いのだが、これがけっこう時間が掛かる。また、ffmpegではなく、Avidemuxで素通しavi変換を掛ければ誤差は防げるのだが、こちらは手作業で1ファイルずつ読み込んで処理しなければならず、手間が掛かる。まあ、キューに登録してジョブとして一括実行すれば、多少は手間が省けるが、読み込みの手間は同じで、大した省力化にはならない。
しかし、avidemuxがコマンドラインで使用できれば話は別。素通し変換処理なので、再エンコードも編集も不要、単にコンテナを変換するだけで良い。このような場合、以下のような構文で変換を掛ければよい。
avidemux_cli --loadたとえば、「myfile.vro」を「myfile.avi」に素通し変換するなら;入力ファイル --video-codec COPY --audio-codec COPY --save出力ファイル
avidemux_cli --load myfile.vro --video-codec COPY --audio-codec COPY --save myfile.aviなお、avidemuxのディレクトリにパスが通っているわけではないので、実際には、avidemux_cliはフルパスで記述する必要がある。また、複数のファイルを一括変換したければ、以下のようなバッチファイルを作成する。
@for %%f in (%1) Do @( "C:\Program Files\Avidemux 2.6 - 64bits\avidemux_cli" ^ --load %%f --video-codec COPY --audio-codec COPY --save %%~nf.avi )ここで、2行目末尾の「^」は継続行を意味する(2行目と3行目は1行として処理される)。また、3行目末の「%%~nf」は入力ファイルのファイル名本体部分(拡張子やパスを除いたもの)を意味する。つまり、ここでは、入力ファイルの拡張子を付け替えて、出力ファイル名としている。
で、このバッチを、たとえば「avdmxcl.bat」とすると;
avdmxcl *.vroで、カレントにある拡張子「.vro」のファイルを全てaviに素通し変換してくれる。ちなみに、「avdmxcl *.avi」とすると、入力ファイル名と出力ファイル名が重複するので注意。また、mpeg系(VRO/VOBを含む)の連番処理を抑止する方法が判らないので、できれば生VROではなく、mkv素通し変換を掛けてから「avdmcl *.mkv」とすることを推奨。
連番処理の抑止は、テキストファイルから応答を入力する方法で回避は可能。たとえば、「answer.txt」というファイルを作成し、中身を「n[Enter]」としておけば、
avidemux_cli --load 01.vro …… --save 01.avi < anwaser.txt
の要領で、連番処理の質問に対して自動的に「n」(連番処理しない)が入力される。ただし、質問の内容に拘らず「n」を入力するわけで、場合によってはトラブルの原因にもなる。
なお、次のようなオプションも指定可能(詳細は--help参照)。
--help ヘルプの表示 --nogui サイレントモードのようだが、イマイチわからん --video-codec xvid、FFmpeg4、x264?などが指定可能;COPYは素通し --audio-codec MP2、MP3、AC3などが指定可能;COPYは素通し --video-conf ビデオ変換時のオプションだと思うが、イマイチわからん --begin 切り出しの開始点(frame単位) --end 切り出しの末尾(frame単位)ただし、「--begin」「--end」などの編集指定と思われるオプションは、使い方が全く判らない。部分切り出し等をする場合は、avidemux_cliにプロジェクト・ファイルを読み込ませると良い。