Berechnung der Overlay-Übergangsposition für einen Bild-Slide-Effekt

Berechnung der Overlay-Übergangsposition für einen Bild-Slide-Effekt

Jemand hat eine ähnliche Frage gestellt, nur dass er viele Bilder verschoben hat und deshalb meine Lösung nicht aus seiner Antwort ableiten konnte. Ich versuche, nur ein Bild von rechts nach links zu verschieben, indem ich es auf ein Hintergrundbild lege. Meine Startposition (640) ist so verschoben, dass das gleitende Bild am Anfang nicht sichtbar ist, sondern das Hintergrundbild. Das Ziel ist, dass das Bild nach 46 Sekunden zu gleiten beginnt und anhält, wenn es sich an derselben Position wie das Hintergrundbild befindet, anstatt weiter zu gleiten, bis es verschwindet. Unten steht, was ich ohne Erfolg versucht habe.

ffmpeg -loop 1 -t 67 -i background.png -loop 1 -t 5 image1.png
       -filter_complex
        "[0:v]scale=640x720,setsar=1/1[v0];[1:v]scale=640x720,setsar=1/1[v1]
        [v0][v1]overlay=shortest=1:x='min(640,-(t-46)*100))'"
       -y output.mp4

Ich glaube, es hat etwas mit (*100) zu tun, aber ich komme einfach nicht auf die Lösung. Ich habe alle meine Versuche erschöpft.

Antwort1

Verwenden

ffmpeg -loop 1 -t 67 -i background.png -loop 1 -t 6.5 image1.png 
  -filter_complex "[0:v]scale=640x720,setsar=1/1[v0];
                   [1:v]scale=640x720,setsar=1/1,setpts=PTS+46/TB[v1];
                   [v0][v1]overlay=shortest=1:x='max(0,640-(t-46)*100))':enable='gte(t,46)'"
  -y output.mp4

verwandte Informationen