FFMPEG 闪烁覆盖

FFMPEG 闪烁覆盖

我要完成一个相当复杂(对我来说)的视频处理:

  • 获取源视频
  • 裁剪
  • 翻转
  • 图像叠加:3 秒关闭,80 秒开启

我已经完成了第一步:

ffmpeg.exe -i source.flv -vf "movie=overlay.jpg [logo]; 
           [in] crop=854:430:0:50 [crop]; [crop] hflip [flipped]; 
           [flipped][logo] overlay=0:0 [out]" 
           -c:v h264 -c:a copy output.mp4

但我真的不知道从哪里开始让覆盖层在视频过程中多次出现和消失......

我看了看覆盖过滤器手册看到这个示例
overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
也许我可以使用类似的公式来达到我的目的:如果 remainder(t/83) <=2 则为 NAN,否则为 0:0...但我如何计算余数?在 C# 中我可以使用 t%83,但 ffmpeg 呢?
还有其他方法吗?

答案1

我终于找到了一个解决方案,通过样本和阅读表达式求值页面

ffmpeg.exe -i source.flv -vf "movie=overlay.jpg [logo]; 
           [in] crop=854:430:0:50 [crop]; 
           [crop] hflip [flipped]; 
           [flipped][logo] overlay=x='if(lt(mod(t,83),3),NAN,0)':y=0 [out]" 
           -c:v h264 -c:a copy output.mp4

这个想法是找到 t/83 的余数:如果它小于 3,则不能显示覆盖,否则可以。
希望这能有所帮助...

相关内容