如何设置在 ffmpeg 中覆盖视频背景的 zoompan 滤镜的开始时间

如何设置在 ffmpeg 中覆盖视频背景的 zoompan 滤镜的开始时间

下面的代码运行良好,但我似乎无法在特定时间成功启动此图像缩放。即,我希望缩放在 5 秒后生效,而不是在背景视频启动时立即生效。

ffmpeg  -i background.avi  -i image.png \
-filter_complex "1:v]scale=8000x4000,setsar=1/1,zoompan=z='min(zoom+0.005,10)':d=125:s=530x680,trim=duration=3[v1];[0:v][v1]overlay=20:20" \
-c:v libx264 output.avi

答案1

使用

ffmpeg  -i background.avi -loop 1 -i image.png \
  -filter_complex 
       "[1:v]scale=8000x4000,setsar=1/1,zoompan=z='if(gte(in,125),min(pzoom+0.005,10),1)':d=1:s=530x680,
            trim=duration=3[v1];[0:v][v1]overlay=20:20"
  -c:v libx264 output.avi

由于您要将其应用于视频,因此 pzoom 是正确的变量。d应设置为 1,因为它代表每个缩放效果间隔的持续时间个人帧。请务必使用最新版本的 ffmpeg。早期版本中存在一个错误,导致 pzoom 无法正常运行。

相关内容