ffmpeg で無限入力が可能にで追加されていたが、フィルタを掛けて加工することはできなかった。今回はフィルタ内でループするのでループ回数やループした部分にもフィルタが当てられる。
基本コマンド
1回ループして2回読み込む
asetpts
を追加した。2017年10月4日
setpts
を追加した。2019年2月20日。これより。
ffmpeg -i input -filter_complex loop=1:32767:0,setpts=N/(FRAME_RATE*TB);aloop=1:2.14748e+009:0,asetpts=N/SR/TB
reverse
フィルタと併用したループ例。
ffmpeg -f lavfi -i testsrc2=d=5.5 -vf trim=start=3.5:end=5.5,setpts=0.5*PTS-STARTPTS,split[out0][out1];[out0]reverse[r];[out1][r]concat,loop=2:250,setpts=N/25/TB avm.gif
映像と音声を逆再生にエンコードする
Make Boomerang w/ single FFmpeg Command | by Salih Çağlar Ispirli | Apr, 2022 | Mediumから引用。
公式ドキュメント:FFmpeg Filters Documentation : loop
公式ドキュメント:FFmpeg Filters Documentation : aloop
オプション
- loop[int]
ループ回数。-1 で無限
既定値:0
範囲:0からINT_MAXまで - size[int64]
ループにどれだけバッファサイズを取るか
loop
ならフレーム数。aloop
ならサンプル数
既定値:0
範囲:0から32767まで:loop
範囲:0からINT_MAXまで:aloop
- start[int64]
ループするときにどの位置からループするか
loop
ならフレーム数。aloop
ならサンプル数
既定値:0
範囲:0からI64_MAXまで