
Кто-то задал похожий вопрос, за исключением того, что они скользили по многим изображениям и поэтому не могли понять мое решение из своего ответа. Я пытаюсь скользить только по одному изображению справа налево, накладывая его на фоновое изображение. Моя начальная позиция (640) смещена так, что скользящее изображение не видно в начале, а видно фоновое изображение. Цель состоит в том, чтобы изображение начало скользить на 46 секунде и остановилось, когда оно окажется в том же положении, что и фоновое изображение, а не продолжало скользить, пока не исчезнет. Ниже приведено то, что я пробовал, но безуспешно.
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
Я думаю, что это как-то связано с (*100), но я просто не могу придумать решение. Я исчерпал все свои попытки.
решение1
Использовать
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