FFmpeg zoompan滤镜定点缩放动画出现Zig-zag轨迹问题求助
FFmpeg zoompan滤镜定点缩放动画出现Zig-zag轨迹问题求助
大家好,我最近在做一个FFmpeg的视频缩放动画功能,需求是让用户指定视频中的一个定点(zoomPoint),然后实现先放大到该点、保持一段时间后再缩小的动画效果。
先给大家看看我用到的参数示例:
"scale":4:缩放倍数,这里是4倍"offset":0:0毫秒后开始放大"duration":5000:保持放大状态5000毫秒"marginX":80:缩放的X点对应视频宽度的80%位置"marginY":10:缩放的Y点对应视频高度的10%位置
基于这些参数,我运行了如下简化的FFmpeg命令:
ffmpeg -i "/tmp/input.mp4" -c:v libx264 -r 30 -vf "scale=iw*2:ih*2,zoompan=fps=30:z='if(gte(it,0.0)*lt(it,5.0), min(pzoom+0.2, 4),if(gte(it,5.0)*lt(it,5.5), max(pzoom-0.2, 1), 1))':d=1:s=1512x982:x='(iw - iw/4)*(80/100)':y='(ih - ih/4)*(10/100)'" /tmp/output.mp4
关于动画的计算逻辑我也理了一下:
- 动画时长是0.5秒,视频帧率30fps,所以动画帧数量是
0.5 / (1/30) = 15帧 - 缩放的总幅度是
scale - 1 = 3,所以每帧的缩放增量是3 / 15 = 0.2
现在的问题是:动画虽然最终能到达指定的x/y位置,但过程中会出现锯齿状(Zig-zag)的轨迹——先是缩放到右上角,之后才转向正确的目标位置。我试了好几种方式都没搞定,不知道怎么让缩放动画沿着直线平滑地到达指定的定点。
有没有大佬能给点建议?万分感谢!
备注:内容来源于stack exchange,提问作者kregus
相关产品推荐
相关产品推荐

