
Ich versuche, ein Video mit Bildern (png) mit einem Wasserzeichen zu versehen. Das Wasserzeichen funktioniert einwandfrei. Allerdings habe ich kein Audio
ffmpeg -i video.mp4 -loop 1 -i watermark_template_bottom.png -i watermark_template_top.png -filter_complex [1:0]fade=in:st=0:d=2:alpha=1,fade=out:st=14:d=2:alpha=1[v_0];
[1:0]fade=in:st=28:d=2:alpha=1,fade=out:st=42:d=2:alpha=1[v_1];
[1:0]fade=in:st=56:d=2:alpha=1[v_2];[v_0][v_1]overlay[ovl_0];[ovl_0][v_2]overlay[ovl_1];
[ovl_1][2:0]overlay[end];[0:0] [end]overlay=eof_action=pass[out] -map [out] out.mp4
Gibt es ein Problem mit meinem Code?
Antwort1
Entfernen-map [out]
oderhinzufügen -map 0:a
. Durch das Festlegen einer Zuordnung wird die standardmäßige automatische Zuordnung deaktiviert, sodass nur die ausdrücklich zugeordneten Streams verarbeitet werden.
Und Sie können hinzufügen, -acodec copy
wenn Sie den Ton nicht erneut kodieren möchten.
Antwort2
Fügen Sie -acodec copy
Ihrem Befehl hinzu,Kopieren Sie den Audiostream.
https://ffmpeg.org/ffmpeg.html#Stream-copy
Stream kopieren ist ein Modus, der durch die Angabe des Kopierparameters an die Option -codec ausgewählt wird. Dadurch lässt ffmpeg den Dekodierungs- und Kodierungsschritt für den angegebenen Stream aus und führt nur Demuxing und Muxing durch. Dies ist nützlich, um das Containerformat zu ändern oder Metadaten auf Containerebene zu modifizieren.