我必须制作一个包含 5 张不同图像的视频,每张图像时长 3 秒,顺序如下
- 消退
- 淡入
- 飞涨
- 向左滑动
- 向右滑动
我不了解滑动过滤命令并且缩放功能也无法正常工作。
我正在使用以下命令:
ffmpeg \
-loop 1 -t 3 -i img001.png \
-loop 1 -t 1 -i img002.png \
-loop 1 -t 3 -i img003.png \
-loop 1 -t 3 -i img004.png \
-loop 1 -t 3 -i img005.png \
-c:v libx264 \
-filter_complex \
"[0:v]fade=t=out:st=2.5:d=0.5[v0]; \
[1:v]fade=t=in:st=0:d=0.5,fade=t=out:st=2.5:d=0.5[v1]; \
[2:v]zoompan=z='zoom+0.001':d=10:s=1200x478[v2]; \
[3:v]fade=t=in:st=0:d=0.5,fade=t=out:st=2.5:d=0.5[v3]; \
[4:v]fade=t=in:st=0:d=0.5,fade=t=out:st=2.5:d=0.5[v4]; \
[v0][v1][v2][v3][v4]concat=n=5:v=1:a=0,format=yuv420p[v]" -map "[v]" out.mp4
答案1
对于幻灯片,您需要动态叠加,因此更改为
-loop 1 -t 3 -i img002.png \
-loop 1 -t 9 -i img003.png \
-loop 1 -t 9 -i img004.png \
-loop 1 -t 9 -i img005.png \
和
[2:v]zoompan=z='zoom+0.001':d=75:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':s=1200x478[v2];
[v2][3:v]overlay='max(W*(7-2*t)\,0)':(H-h)/2[v3]; \
[v3][4:v]overlay='min(W*(2*t-14)\,0)':(H-h)/2[v4]; \
[v0][v1][v4]concat=n=3:v=1:a=0,format=yuv420p[v]" -map "[v]" out.mp4
从 3 秒开始,覆盖层以3:v
半秒为单位从右侧滑入图像。
从 6 秒开始,覆盖层4:v
以半秒为单位从左侧滑入图像。
(我删除了第 4 和第 5 张图片的淡入淡出效果)