ffmpegで一度にフィルタリングとマージを行う

ffmpegで一度にフィルタリングとマージを行う

ビデオファイルに複数の変更を一度に行いたいです。

入力ビデオにイントロとアウトロのビデオ スニペットを追加する必要があります。つまり、3 つのビデオを結合することになります。入力ビデオ (2 番目のセグメント) にオーバーレイ イメージを追加する必要があります。これらを 1 行に結合するにはどうすればよいですか?

私はこれを 2 つのステップで実行しました。まずオーバーレイです。

ffmpeg -i input.mkv -i image.png -filter_complex overlay=main_w-overlay_w-0:0 output_file.mkv

次にマージします。

ffmpeg -i intro.mp4 -i input.mkv -i outro.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[video_out][audio_out]" -map "[video_out]" -map "[audio_out]" output_file.mkv

答え1

[v1]出力に一時的な名前を付けて、それをフィルターへの入力としてoverlay=main_w-overlay_w-0:0使用することもできます。[v1]concat

ffmpeg -i intro.mp4 -i input.mkv -i outro.mp4 -i image.png -filter_complex "[1:v][3:v]overlay=main_w-overlay_w-0:0[v1];[0:v:0][0:a:0][v1][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[video_out][audio_out]" -map "[video_out]" -map "[audio_out]" output_file.mkv


  • 次の部分はオーバーレイ ステージを適用します。
    [1:v][3:v]overlay=main_w-overlay_w-0:0[v1]
    オーバーレイされた出力には一時的な名前が付けられます[v1]
  • [0:v:0][0:a:0][v1][1:a:0][2:v:0][2:a:0]concat
    を( の代わりに)[v1]への入力として 使用します。concat[1:v:0]

関連情報