ffmpeg幻灯片从右到左过渡

时间:2018-10-23 05:00:21

标签: ffmpeg

我正在使用此脚本作为参考:

ffmpeg -loop 1 -i 1.jpg -loop 1 -i 2.jpg -loop 1 -i 3.jpg -filter_complex "nullsrc=size=480x600[v0];[0:v]trim=duration=5,scale=480x600,setpts=PTS-STARTPTS,split[v1a][v1b];[1:v]trim=duration=5,scale=480x600,setpts=PTS-STARTPTS,split[v2a][v2b];[2:v]trim=duration=5,scale=480x600,setpts=PTS-STARTPTS[v3];[v0][v1a]overlay=x='min(-w+(t*w/0.5)\,0)':shortest=1[vv0];[v1b][v2a]overlay=x='min(-w+(t*w/0.5)\,0)':shortest=1[vv1];[v2b][v3]overlay=x='min(-w+(t*w/0.5)\,0)':shortest=1[vv2];[vv0][vv1][vv2]concat=n=3:v=1:a=0 [video]" -map "[video]" Slideoutput.mp4

这可以通过从左到右转换图像来工作。我需要做的是从右向左过渡图像。我尝试更改标志,但结果不正确。

我应该怎么做来改变imgae的位置,使其从右到左。

2 个答案:

答案 0 :(得分:2)


我希望在我的一个应用程序中也具有相同的行为,其中幻灯片从右到左显示。

这就是我所做的,修改了命令

ffmpeg -loop 1 -i img01.png -loop 1 -i img02.png -loop 1 -i img03.png -filter_complex \
"nullsrc=size=480x600[v0];\
[0:v]trim=duration=5,scale=480x600,setpts=PTS-STARTPTS,split[v1a][v1b];\
[1:v]trim=duration=5,scale=480x600,setpts=PTS-STARTPTS,split[v2a][v2b];\
[2:v]trim=duration=5,scale=480x600,setpts=PTS-STARTPTS[v3];\
[v0][v1a]   overlay=x='max(w-(t*w/0.5)\,0)':shortest=1[vv0];\
[v1b][v2a]  overlay=x='max(w-(t*w/0.5)\,0)':shortest=1[vv1];\
[v2b][v3]   overlay=x='max(w-(t*w/0.5)\,0)':shortest=1[vv2];\
[vv0][vv1][vv2] concat=n=3:v=1:a=0 [video]" -map "[video]" Slideoutput.mp4

说明: 关键是要为覆盖帧提供适当的X值。

示例: 叠加层的宽度为:480

我们想在第一帧中以x = 480显示覆盖图
然后是类似的
x = 460
x = 420


x = 0

那是正确方向的感觉

答案 1 :(得分:1)

使用

x='W-min(t*W/0.5\,W)'

图像将首先显示在右侧,并在x = 0处停止。