FFmpeg - ビデオの特定の時間にすべてのビデオフィルタ(-vf)オプションを有効にする

FFmpeg - ビデオの特定の時間にすべてのビデオフィルタ(-vf)オプションを有効にする

-vf1 つのコマンドで (2 つの異なるビデオ ファイルを連結せずに)、ビデオの特定の時間 (つまり、ビデオの開始から 5 秒後など) にのみオプションまたはオプションがアクティブになるように渡すことが-filter_complexできるオプションはありますか?

このようなもの:

ffmpeg -i input.mp4 -vf "eq=contrast=250.0, time=start=5:end=15" output.mp4

フィルターcontrastはビデオの 5 秒から 15 秒の間にのみ表示されます。

2 つの別々のビデオを 1 行に連結できるでしょうか? ご指導いただければ幸いです。

編集:ただ読んでタイムライン編集ffmpeg ドキュメントのセクションにありますが、私の理解では、すべてのフィルターがこれをサポートしているわけではありません。普遍的な方法はありますか?

答え1

フィルターがタイムライン編集をサポートしている場合は、そのフィルターのenableキーワードを設定できます。例:

ffmpeg -i input.mp4 -vf "eq=contrast=250.0:enable='between(t,5,15)'" output.mp4

そうでない場合は、分割、トリム、連結フィルターの組み合わせを使用して、入力をセグメント化し、選択的に処理することができます。

ffmpeg -i input.mp4 -vf "split=3[pre][affected][post];[pre]trim=0:5,setpts=PTS-STARTPTS[pre];[affected]trim=5:15,setpts=PTS-STARTPTS,eq=contrast=250.0[affected];[post]trim=15,setpts=PTS-STARTPTS[post];[pre][affected][post]concat=n=3:v=1:a=0" output.mp4

関連情報