Mehrere Videofilter in FFmpeg

7290
sweb

Ich möchte ein PNG-Wasserzeichen hinzufügen und dann mein Video skalieren. Ich kann weitere Filter hinzufügen. Dies ist mein FFmpeg-Befehl.

sweb@sweb-laptop:/tmp$ ffmpeg -i Wildlife.wmv -sn -acodec libvorbis -vcodec libvpx -b:a 128k -ar 44100 -b:v 384k -r 25 -vf "movie=/tmp/icon.png [watermark]; [in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 [out], scale=480:-1" video.webm 

… Aber es gab einen Fehler:

Simple filtergraph 'movie=/tmp/icon.png [watermark]; [in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 [out], scale=480:-1' does not have exactly one input and output. Error opening filters! 
2

1 Antwort auf die Frage

5
evilsoup
[in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 [out], scale=480:-1" 

.. hat [out]an der falschen Stelle, was den Filtergraph bedeutungslos macht. Es sollte sein:

[in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2, scale=480:-1[out]" 

Ich persönlich mag den Filmfilter aus rein ästhetischen Gründen nicht (ich denke, er macht die Befehlszeile weniger klar). Ich würde dies stattdessen mit filter_complex machen:

ffmpeg -i Wildlife.wmv -i /tmp/icon.png \ -filter_complex '[0:v][1]overlay=W/2-w/2:H/2-h/2,scale=480:-1[outv]' \ -map [outv] -map 0:a -c:a libvorbis -b:a 128k -c:v libvpx -b:v 384k output.webm 

Beachten Sie, dass filter_complex nicht kompatibel ist [in], da er naturgemäß mehrere Eingaben erfordert .

Ich habe sie entfernt -ar 44100und -r 25, da Sie sie wahrscheinlich nicht benötigen - wenn Ihre Eingangsquelle eine Bildrate von 25 Bildern pro Sekunde und eine Audiofrequenz von 44100 hat, erbt der Ausgang diese Einstellungen standardmäßig. Und wenn nicht, gewinnen Sie wahrscheinlich nichts, wenn Sie sie ändern.


Um das Video zuerst zu skalieren und dann ein Wasserzeichen hinzuzufügen, können Sie Folgendes verwenden:

-vf 'movie=/tmp/icon.png[wm];[in]scale=480:-1[int];[int][wm]overlay=W/2-w/2:H/2-h/2[out]' 

Ich bin mir eigentlich nicht sicher, ob das funktionieren würde. persönlich würde ich filter_complex wie oben verwenden:

ffmpeg -i Wildlife.wmv -i /tmp/icon.png \ -filter_complex '[0:v]scale=480:-1[int];[int][1]overlay=W/2-w/2:H/2-h/2[outv]' \ -map [outv] -map 0:a -c:a libvorbis -b:a 128k -c:v libvpx -b:v 384k output.webm 
wenn ich zuerst skalieren und dann Wasserzeichen hinzufügen möchte, was muss ich tun? `[in] [Wasserzeichen] Maßstab = 480: -1, Overlay = main_w / 2-overlay_w / 2: main_h / 2-overlay_h / 2 [out]` hat nicht funktioniert. sweb vor 11 Jahren 0
kannst du mir helfen, es zu lösen? sweb vor 11 Jahren 0
@sweb Ich habe Anweisungen dazu auf die Antwort angehängt evilsoup vor 11 Jahren 1
noch einmal für große Hilfe. sweb vor 11 Jahren 0