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

対象コミット:support infinite loop for the loop option : git.videolan.org Git – ffmpeg.git/commitdiff
公式ドキュメント:Main options : ffmpeg Documentation

基本コマンド

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

3回ループする
ffmpeg -stream_loop 3 -i input -c copy output

制限

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

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

用途

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

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

動く映像を右下に配置する
ffmpeg -i movie -stream_loop -1 -i bgv -filter_complex overlay=W-w:H-h 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 output

関連記事

【ffmpeg】動画・音声を連結する concat の使い方
Windows の ffmpeg で生放送する方法 : オーバーレイ
ffmpeg でクロマキー合成 その2

コメントを残す

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

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