You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FFmpeg多图片缩放平移合成视频异常:仅首图缩放次图静止求助

解决FFmpeg中第二张图片无缩放平移效果的问题

我仔细看了你的FFmpeg命令,问题核心出在zoompan滤镜的状态没有重置上。当第一张图处理完成时,zoom变量已经达到了2.5的最大值,第二张图复用这个状态后,min(zoom+0.0015,2.5)直接返回上限值,自然就没有缩放动画了。另外,原命令里的时间轴和变量复用逻辑也有小问题,导致第二张图的动画无法正常触发。

下面是修正后的完整命令:

ffmpeg -f lavfi -r 30 -t 10 -i color=#000000:1920x1080 \
-f lavfi -r 30 -t 10 -i aevalsrc=0 \
-i "image-1.png" \
-i "image-2.png" \
-y -filter_complex \
"[0:v]fifo[bg];\
[2:v]setpts=PTS-STARTPTS,scale=4455:2506:force_original_aspect_ratio=decrease,zoompan=z='min(zoom+0.0015,2.5)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=150:fps='30':s='1920x1080'[v2];\
[bg][v2]overlay=0:0:enable='between(t,0,5)'[bg1];\
[3:v]setpts=PTS-STARTPTS,scale=3840:2160:force_original_aspect_ratio=decrease,zoompan=z='min(1+0.0015*on,2.5)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=150:fps='30':s='1920x1080'[v3];\
[bg1][v3]overlay=0:0:enable='between(t,5,10)'[bg];\
[1:a]amix=inputs=1:duration=first:dropout_transition=0" \
-map "[bg]" -vcodec "libx264" -preset "veryfast" -crf "15" "output.mp4"

关键修改点说明:

  • 重置zoom初始状态:把第二张图的zoom表达式从z='min(zoom+0.0015,2.5)'改成z='min(1+0.0015*on,2.5)'。这里on是zoompan内部的帧计数器,从0开始计数,确保第二张图的缩放从初始值1开始逐步递增,和第一张图的动画逻辑一致。
  • 避免变量状态污染:原命令复用了[bg]作为中间变量,可能导致前一张图的叠加状态残留。修改为用[bg1]作为过渡,让第二张图的叠加操作基于干净的黑色背景。
  • 简化时间轴逻辑:去掉第二张图setpts里的+5.07/TB偏移,因为enable='between(t,5,10)'已经精准控制了显示时间,setpts=PTS-STARTPTS足以让图片从自身的时间起点开始播放。
  • 统一时间区间:两张图的显示时间分别设为0-5秒和5-10秒,确保衔接无缝,没有间隙或重叠。

这个修改完全兼容你使用的FFmpeg 4.1版本,不需要升级即可生效。

内容的提问来源于stack exchange,提问作者basim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:59:18