今までは loop 1 で画像の無限入力はできていたが、これからは音声や映像も無限に入力できるようになった。

ループ回数を指定できる loop, aloop

公式ドキュメント:Main options : ffmpeg Documentation

mp4 – Repeat/loop Input Video with ffmpeg? – Video Production Stack Exchange より、fflags +genpts を追加した。

基本コマンド

600秒でカットする。
ffmpeg -stream_loop -1 -i input -c copy -fflags +genpts -t 600 output

3回ループする。
ffmpeg -stream_loop 3 -i input -c copy -fflags +genpts output

制限

上のコマンドでループを指定できるがいくつか制限がある。

  • 2入力をループしてマルチトラックなら可能だが、後ろにつなげる場合はループできない
  • concat で取り込んでも複数ファイルのループには対応していない
  • ループしたものをフィルタに取り込んでも1回だけで2回以上ループして取り込めない
  • 音声だけの場合は指定秒でカットできるが、映像は必ずn回の最初から最後までを出力する

用途

メイン映像のBGMに使う。但し1つの音源のみ。複数音源は予め連結しておかなければならない。
ffmpeg -i movie -stream_loop -1 -i bgm -filter_complex [0:v][1:a]amix -fflags +genpts output

2つの音声を連結する。連結する数だけ n の値を増やす。
ffmpeg -i input1 -i input2 -filter_complex "concat=n=2:v=0:a=1" -fflags +genpts output

2つの映像と音声を連結する。
ffmpeg -i input1 -i input2 -filter_complex "concat=n=2:v=1:a=1" -fflags +genpts output

動く映像を右下に配置する。
ffmpeg -i movie -stream_loop -1 -i bgv -filter_complex overlay=W-w:H-h -fflags +genpts output

オーバーレイする映像をクロマキー処理(緑背景)して透過させる。
ffmpeg -i movie -stream_loop -1 -i bgv -filter_complex [1:0]chromakey=green:.03:.1[bgv];[0:0][bgv]overlay=W-w:H-h -fflags +genpts output

関連記事

【ffmpeg】動画・音声を連結する concat の使い方
映像の上に映像をのせる overlay
ffmpeg でクロマキー合成 その2

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)