使用 ffmpeg 在覆盖图像上进行循环左右过渡

使用 ffmpeg 在覆盖图像上进行循环左右过渡

我正在尝试使用 ffmpeg 输出视频:

  • 基础视频“video.mp4”
  • 静态覆盖图像“staticimage.png”
  • 一个从左到右循环过渡的叠加图像“movingimage.png”

以下是我目前能做的事情:

ffmpeg -i "video.mp4" -i "movingimage.png" -i "staticimage.png" -filter_complex "[0]overlay=x='if(gte(t,0), -w+(t)*100, 3)':y=0[v];[v][2]overlay=0:0[vt];[1][vt]overlay=0:0" -c:a copy -vcodec libx264 -preset superfast -f flv "output.flv"

到目前为止,此命令是成功的。但是,移动图像只进行一次转换。有没有办法让它循环并从初始位置(左侧)重新开始?

您的帮助将不胜感激。谢谢。

答案1

对于循环,您需要一个周期函数,通常是 mod。

在这种情况下,

x='-w+100*mod(t,(W+w)/100)'

相关内容