Ich versuche, einen bestimmten Teil des Videos in Abhängigkeit von einem bestimmten Intervall zu verwischen, z. B. in 2-10 Sekunden diesen Teil und in 12-20 Sekunden einen anderen, aber ich bekomme das nicht hin. Hier ist der Befehl, den ich bisher ausführen kann
'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'
Aber mit dem obigen Befehl erhalte ich einen FehlerFilter Boxblur hat nicht verbundenen Ausgang
Antwort1
Verwenden
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
Das Ergebnis der ersten Überlagerung sollte der Hintergrund für die zweite Überlagerung sein.
Der Fehler trat auf, weil fg1
er nirgends verwendet wurde. Alle Filterausgaben sollten entweder 1) für die Kodierung zugeordnet, 2) von einem anderen Filter verwendet oder 3) an einen Sink gesendet werden.