使用 ffmpeg 构建带有滑动过渡的图像幻灯片的问题

Problems building Image slideshow with sliding transition using ffmpeg

我正在尝试使用 ffmpeg 和以下命令创建带幻灯片转换的图像幻灯片:

ffmpeg -loop 1 -i img1.jpg -loop 1 -i img2.jpg -loop 1 -i img3.jpg ^
-filter_complex ^
"nullsrc=size=800x600[v0]; ^
[0:v]trim=duration=5,scale=800x600,setpts=PTS-STARTPTS[v1]; ^
[1:v]trim=duration=5,scale=800x600,setpts=PTS-STARTPTS[v2]; ^
[2:v]trim=duration=5,scale=800x600,setpts=PTS-STARTPTS[v3]; ^
[v0][v1]overlay=x='min(-w+(t*w/0.5)\,0)':shortest=1[vv0]; ^
[v1][v2]overlay=x='min(-w+(t*w/0.5)\,0)':shortest=1[vv1]; ^
[v2][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]" output.mp4

我希望每张图片都从左侧滑入 0.5 秒并停留 4.5 秒,然后再与下一张图片重叠,依此类推。

第一个问题是,仅用 3 张图像构建视频需要 2-3 分钟,而我想添加更多图像,这将导致构建时间极长。

第二个问题是视频应该是15秒长,但只有8秒,因为第一张图片显示5秒,第二张显示2秒,最后一张只显示1秒。

非常感谢您的帮助。

在过滤器复合体中生成的输入板只能使用一次。因此,您应该拆分那些将被重用的流。

ffmpeg -loop 1 -i img1.jpg -loop 1 -i img2.jpg -loop 1 -i img3.jpg ^
-filter_complex ^
"nullsrc=size=800x600[v0]; ^
[0:v]trim=duration=5,scale=800x600,setpts=PTS-STARTPTS,split[v1a][v1b]; ^
[1:v]trim=duration=5,scale=800x600,setpts=PTS-STARTPTS,split[v2a][v2b]; ^
[2:v]trim=duration=5,scale=800x600,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]" output.mp4