名前付きの開始位置から ffmpeg フィルターを適用する標準的な方法はありますか、それともフィルターごとに異なりますか?
たとえば、ぼかしを適用すると、クリップ全体を簡単にぼかすことができますが、5 秒後からぼかしたい場合は、どうすれば実現できますか (トリミングして連結し直さずに)?
答え1
最も簡単な方法は、タイムラインサポート(enable
オプション)。
フィルターのリストを確認し、名前の横にあるffmpeg -filters
を探します。例:T
Filters:
T.. = Timeline support
.S. = Slice threading
..C = Command support
A = Audio input/output
V = Video input/output
N = Dynamic number and/or type of input/output
| = Source or sink filter
[...]
TSC avgblur V->V Apply Average Blur filter.
T.. boxblur V->V Blur the input.
T.C dblur V->V Apply Directional Blur filter.
TSC gblur V->V Apply Gaussian Blur filter.
T.. sab V->V Apply shape adaptive blur.
T.. smartblur V->V Blur the input video without impacting the outlines.
TS. unsharp V->V Sharpen or blur the input video.
TSC yaepblur V->V Yet another edge preserving blur filter.
したがって、これらすべてのぼかしフィルターがこれをサポートしています。
タイムスタンプ 5 から終了までをぼかすコマンドの例:
ffmpeg -i input.mp4 -vf "boxblur=enable='gt(t,5)'" -c:a copy output.mp4
見る追加機能のリスト。
フィルターがタイムラインをサポートしていない場合、回避策としてトリムそして設定フィルターを使用してフィルタリングするビデオの時間を選択し、かぶせるまたは連結配置するフィルター。このサイトにはいくつかの例があるはずです。