
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.