Wie kann ich mit FFMPEG ein Video ausgeben, während ein anderes eingeht?

Wie kann ich mit FFMPEG ein Video ausgeben, während ein anderes eingeht?

Ich versuche, einen gleitenden Animationseffekt zu erzielen, bei ffmpegdem 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 overlayFilters 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

verwandte Informationen