
同様の質問をした人がいましたが、その人は多くの画像をスライドさせていたため、回答から私の解決策を理解できませんでした。背景画像に重ねて、1 つの画像だけを右から左にスライドさせようとしています。開始位置 (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