もちろん他にもいろいろやり方はあるでしょうが、バッチファイル化してTS(うちの場合はTMSRで編集したm2tsファイル)を食わせてやれば自動的にdemuxしてくれますので、この方法でずっとやっています。
- M2TSファイルを用意します。
- ffmpeg でストリーム0(映像部)を切り出して、m2v にします。
- ffmepg でストリーム1(音声1)を切り出して、m4a にします。
- ffmpeg でストリーム2(音声2)を切り出して、m4a にします。
- m2v は Aviutl に食わせて mp4 にします。
- m4a はそれぞれ音声コーデックに食わせて、aacにします。
- 最後に remuxer に食わせて結合します。
2と3は、そのまま結合するとなぜかTMSRが「MP4で標準的な音声ストリームではない」と言われてしまうため、あえて入れています。
また、5の音声コーデックはffmpegでもいいしQAACでもいいです。音質的には ffmpeg + libfdk_aac と qaac と、どちらでも非常によいです。また、5.1ch音声でもちゃんとエンコードしてくれます。remの部分でqaacかffmpegを選択して使います。
ffmpeg -i "%~nx1" -map 0:0 -c copy "%~dpn1.m2v" ffmpeg -i "%~nx1" -map 0:1 -c copy "%~dpn1-1101.aac" C:\Apps\aviutl\exe_files\qaac64 -V 127 "%~dpn1-1101.aac" rem ffmpeg -i "%~nx1" -map 0:1 -c:a libfdk_aac -vbr 5 "%~dpn1-1101.m4a" ffmpeg -i "%~nx1" -map 0:2 -c copy "%~dpn1-1102.aac" C:\Apps\aviutl\exe_files\qaac64 -V 127 "%~dpn1-1102.aac" rem ffmpeg -i "%~nx1" -map 0:2 -c:a libfdk_aac -vbr 5 "%~dpn1-1102.m4a"
結合は remuxer を使います。
remuxer -i {video} -i {audio1} -i {audio2} -o {mp4file}
です。
以前はmp4box使ってたんですが、ファイル名の扱いの部分でちょっとおかしい(たぶん文字コード関係)ことがあったので、こちらに切り替えました。
0 件のコメント:
コメントを投稿