![ffmpeg - 如何使用 1 张图片创建 5 秒视频缩小效果](https://linux22.com/image/1415773/ffmpeg%20-%20%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%201%20%E5%BC%A0%E5%9B%BE%E7%89%87%E5%88%9B%E5%BB%BA%205%20%E7%A7%92%E8%A7%86%E9%A2%91%E7%BC%A9%E5%B0%8F%E6%95%88%E6%9E%9C.png)
我知道如何使用 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