ffmpeg - 如何使用 1 张图片创建 5 秒视频缩小效果

ffmpeg - 如何使用 1 张图片创建 5 秒视频缩小效果

我知道如何使用 zoompan 通过 1 张图像制作 5 秒视频“放大”效果。

ffmpeg -loop 1 -i image1.jpg -vf "zoompan=z='min(zoom+0.0015,1.5)':d=125" -c:v libx264 -t 5 -s "800x450" zoomin.mp4

如何制作“缩小”视频?

尝试了以下方法但都不起作用:

ffmpeg -loop 1 -i image1.jpg -vf "zoompan=z='min(zoom-0.0015,1.5)':d=125" -c:v libx264 -t 5 -s "800x450" zoomout.mp4

ffmpeg -loop 1 -i image1.jpg -vf "zoompan=z='max(1.5,zoom-0.0015)':d=125" -c:v libx264 -t 5 -s "800x450" zoomout.mp4

ffmpeg -loop 1 -i image_1.jpg -vf "zoompan=z='max(zoom-0.0015,1.5)':d=125" -c:v libx264 -t 5 -s "800x450" zoomin.mp4

答案1

您必须首先设置缩放系数,因为默认情况下它设置为 1.0。我可以这样做:

ffmpeg -loop 1 -i image_1.jpg -vf "zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125" -c:v libx264 -t 5 -s "800x450" zoomout.mp4

每次迭代时,它将从 1.5 开始放大,然后缩小 0.0015。请注意,使用值 1.001(任何大于 1.0 的值)以确保它不会缩小超过 1.0 并重置为 1.5。

另一个解决方案可能是简单地反转原始 zoompan 的输出,但经过快速搜索后,在 ffmpeg 中反转视频似乎需要付出很多努力。

答案2

根据帧索引(开)和持续时间计算 z。

on/duration将获得从 0 到 1 的每个帧增长的百分比。

1.5-on/duration*0.5给你一个 1.5-1 之间的数字。

全部一起:

ffmpeg -loop 1 -i image1.jpg -vf "zoompan=z='1.5-on/duration*0.5':d=125" -c:v libx264 -t 5 -s "800x450" zoomin.mp4

相关内容