FFMPEG - 在视频中以固定间隔添加绿色视频叠加。如何定义间隔?

FFMPEG - 在视频中以固定间隔添加绿色视频叠加。如何定义间隔?

我正在尝试在主视频顶部添加绿屏视频叠加层。绿色视频叠加层就像视频中每隔几分钟出现的竖起大拇指。我有一个 ffmpeg 命令可以完美地添加视频叠加层。(我从这里

ffmpeg -i input.mp4 -i green.mp4 -filter_complex     \
       '[1:v]colorkey=0x00ff00:0.4:0.2[ckout];[0:v][ckout]overlay[out]' \
        -map '[out]'  -c:v libx264 -pix_fmt yuv420p res.mp4

但是 green.mp4 刚好出现在开头。但我尝试以固定的时间间隔添加它。比如 5 分钟、10 分钟等等。类似这样。

以固定间隔叠加视频

我甚至可以让它在视频中出现一次,但在指定的时间。如果可能的话,最好让它重复几次,而且不要太复杂。

答案1

只需enable向过滤器添加适当的属性:

ffmpeg -i input.mp4 -i green.mp4 -filter_complex     \
  "[1:v]colorkey=0x00ff00:0.4:0.2[ckout];[0:v][ckout]overlay=enable='eq(mod(t, 300), 0)'[out]" \
  -map '[out]'  -c:v libx264 -pix_fmt yuv420p res.mp4
  • mod用于通过与 进行比较来检查可整除间隔0。您可以改为与 进行比较,例如1( x) 并使用lt而不是 来eq使覆盖显示更长时间(x秒)。
  • 300因为 300 秒 = 5 分钟,所以间隔

请参阅文档enable支持的表达式

相关内容