Ich versuche, einen gleitenden Animationseffekt zu erzielen, bei ffmpeg
dem die aktuelle Eingabe nach links herausgeschoben wird, während die nächste Eingabe von rechts in den Bildschirm hineingezogen wird.
Bisher habe ich diesen Befehl, der den letzten Teil des Effekts mithilfe des overlay
Filters erzielt.
ffmpeg -y -i /tmp/temp_videos/0000.mp4 -itsoffset 5 -i /tmp/temp_videos/0001.mp4 -filter_complex "[0:v]setpts=PTS-STARTPTS[v0]; \
[1:v]setpts=PTS-STARTPTS+7/TB[v1]; \
[v0][v1]overlay=x='if(gte(w-(t-7)*2000,0),w-(t-7)*2000,0)':y=0[out]" -map '[out]' -y test.mp4
Es nimmt zwei Eingangsvideodateien und legt die zweite über die erste. Nach 7 Sekunden gleitet die zweite Eingabe von rechts herein und überdeckt die erste Eingabe. Die X-Position der zweiten Eingabe beginnt außerhalb des Bildschirms und nimmt ab, bis sie auf 0 geht. Wie gesagt, dies ist die zweite Hälfte des Animationseffekts, den ich erreichen möchte.
Wie kann ich es erreichen, dass der erste Input nach links rausgeschoben wird, wenn der zweite reinkommt?
Dies ist fast genau der Effekt, den ich suche, nur dass er in die entgegengesetzte Richtung verläuft: https://github.com/tanersener/ffmpeg-video-slideshow-scripts/raw/master/docs/transition_push_horizontal.gif