ffmpeg: Durch das Hinzufügen eines Logos zum Video verlängert sich die Originalvideozeit

ffmpeg: Durch das Hinzufügen eines Logos zum Video verlängert sich die Originalvideozeit

Ich versuche, einem Video ein Logo hinzuzufügen, das nach und nach in der Mitte des Bildschirms erscheint. Aus irgendeinem Grund werden dadurch dem Ausgabevideo zwei zusätzliche Sekunden hinzugefügt, sodass das Video schnell hängen bleibt. Irgendeine Idee, wie man das vermeiden kann:

ffmpeg -i "input.mp4" -loop 1 -i "logo.png" ^
-filter_complex "[1]scale=300:-1,hue=s=0,format=rgba[logo];[logo]split[logo1][logo2]; ^
[logo1]colorchannelmixer=aa=0.0[logo1];[logo2]colorchannelmixer=aa=0.2[logo2]; ^
[logo1][logo2]xfade=transition=fade:duration=5:offset=0[logo]; ^
[0][logo]overlay=x=(W-w)/2:y=(H-h)/2" -q:v 0 -shortest -y output.mp4 

Antwort1

Sie machen die Sache zu kompliziert. Legen Sie das Logo auf eine Instanz des Videos. Blenden Sie es dann aus, bevor Sie es auf eine andere Instanz legen.

ffmpeg -i input.mp4 -i logo.png -filter_complex ^
[0]split[A][B];[A][1]overlay[OL];^
[OL]fade=type=in:start_time=0:duration=5:alpha=1[Top];^
[B][Top]overlay out.mp4

Das Logo kann vor der ersten Überlagerung mit Skalierung, Farbton usw. gefiltert werden.

verwandte Informationen