フィルターボックスブラーには未接続の出力があります

フィルターボックスブラーには未接続の出力があります

特定の間隔に応じてビデオの特定の部分をぼかそうとしています。たとえば、2〜10秒でこの部分をぼかし、12〜20秒で別の部分をぼかしますが、うまくいきません。これまでに作成できるコマンドは次のとおりです。

'ffmpeg -y -i with_out_sound.mp4 -filter_complex [0:v]crop=206:169:32:121,boxblur=10:enable='between(t,2,10)'[fg];[0:v]crop=206:169:62:100,boxblur=10:enable='between(t,12,20)'[fg1];[0:v[fg]overlay=32:121:enable='between(t,2,10)'[tmp];[0:v][tmp]overlay=62:100:enable='between(t,12,20)'[tmp2]-map [tmp2] with_blur.mp4'

しかし、上記のコマンドではエラーが発生しますフィルターボックスブラーには未接続の出力があります

答え1

使用

ffmpeg -y -i with_out_sound.mp4 -filter_complex \
"[0:v]crop=206:169:32:121,boxblur=10:enable='between(t,2,10)'[fg]; \
 [0:v]crop=206:169:62:100,boxblur=10:enable='between(t,12,20)'[fg1]; \
 [0:v[fg]overlay=32:121:enable='between(t,2,10)'[tmp]; \
 [tmp][fg1]overlay=62:100:enable='between(t,12,20)'[tmp2]"
-map [tmp2] with_blur.mp4

最初のオーバーレイの結果が、2 番目のオーバーレイの背景になります。

エラーは、fg1どこにも使用されていないために発生していました。すべてのフィルター出力は、1) エンコード用にマップされるか、2) 別のフィルターによって使用されるか、3) シンクに送信されるかのいずれかである必要があります。

関連情報