web-dev-qa-db-ja.com

品質を損なうことなくavconvを使用して異なるエンコーディングパラメータの.mp4ビデオを連結しますか?

avconvツールを使用して、品質を損なうことなく、異なるエンコーディングパラメータの複数の.mp4ビデオを単一のコンテナに連結するにはどうすればよいですか?

1
becko

コマンド ここで指定 は、ビデオのエンコードパラメータが異なる場合は機能しません。実際、最初に同じパラメーターにそれらを持ってきて、デコードされた(ピクセル)ドメインで作業し、次にそれらをロスレスで保存することによってのみ、それらを連結することができます。

たとえば、フレームレートとビデオのサイズ、オーディオサンプリングレート、およびオーディオチャネルを調和させるには、次のようにします。

avconv -i input_1.mp4 -s 1920x1080 -r 25 -c:v ffv1 -c:a pcm_s16le -ac 2 -ar 44100 out_1.avi
avconv -i input_2.mp4 -s 1920x1080 -r 25 -c:v ffv1 -c:a pcm_s16le -ac 2 -ar 44100 out_2.avi
avconv -i "concat:out_1.mp4|out_1.mp4" -c copy output.avi

これは、ロスレスコーデックとしてffv1を使用しますが、他のロスレスコーデックは正常に機能します(たとえば、AVIではhuffyuv、MP4ではlibx264-crf 0)。

「小さな」出力ファイルが再び必要な場合は、損失の多いエンコーダーを使用してoutput.aviを圧縮する以外に選択肢はありません。

1
slhck