FFmpeg — 计算 zoompan 过滤器持续时间

art*_*ska 4 ffmpeg

我想制作具有平滑小缩放图像效果的 30 秒视频。我所做的:

ffmpeg -y -loop 1 -i 1.png -vf "zoompan=z='min(max(zoom,pzoom)+0.0015,1.1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':s='1000x1000'" -c:v libx264 -t 30 1.mp4

如何在 30 秒(所有视频时间)内修改我的 ffmpeg zoompan 参数以获得缩放效果?现在它会产生 3 秒的效果。文档说:

d — Set the duration expression in number of frames. This sets for how many number of frames effect will last for single input image.

但是我的实验d失败了。谢谢!

Gya*_*yan 6

d只设置过滤器运行时间为您输入的每一帧。缩放的持续时间将由缩放表达式确定。

zoom 用 value 初始化1。因此'min(max(zoom,pzoom)+0.0015,1.1)'1.1(1.1 - 1) / 0.0015帧后钳制到值,即 66 帧。对于 25 fps 输入(没有固有记录速率或时间的输入的默认值),这是 2.64 秒。

要保持缩放 30 秒,请减小0.0015或增大1.1