![使用 FFMPEG 每 x 秒/分钟在视频上淡入淡出水印,持续 y 秒/分钟](https://linux22.com/image/1505039/%E4%BD%BF%E7%94%A8%20FFMPEG%20%E6%AF%8F%20x%20%E7%A7%92%2F%E5%88%86%E9%92%9F%E5%9C%A8%E8%A7%86%E9%A2%91%E4%B8%8A%E6%B7%A1%E5%85%A5%E6%B7%A1%E5%87%BA%E6%B0%B4%E5%8D%B0%EF%BC%8C%E6%8C%81%E7%BB%AD%20y%20%E7%A7%92%2F%E5%88%86%E9%92%9F.png)
我想知道使用 FFMPEG 是否可以每隔 x 秒/分钟在视频上淡入淡出水印,持续 y 秒/分钟。我尝试过 -filter_complex 看看它是否有帮助,但没有任何结果。
答案1
您可以使用环路滤波器。
ffmpeg -i video -loop 1 -i logo.png -filter_complex
"[1]trim=0:30,fade=in:st=0:d=1:alpha=1,fade=out:st=9:d=1:alpha=1,
loop=999:750:0,setpts=N/25/TB[w];
[0][w]overlay=shortest=1" out.mp4
首先,将徽标图像流修剪为持续时间为x
秒的 30 秒。然后应用 1 秒的淡入和淡出效果。淡出从y-1
秒开始,这里是 9。结果循环 999 次 - 使用足以跨越视频长度的数字。由于我修剪了 30 秒的片段,因此要循环的片段的大小为duration x framerate
,这里30 x 25
= 750
。循环从起始帧开始0
。最后,循环过滤器不会清理时间戳,因此添加了 setpts 以产生单调序列。
然后将流叠加在视频上。