假设我有一个视频foo.mkv
和一个图像bar.png
(恰好包含一个Alpha通道)。我可以将此图像混合在视频上,如下所示:
ffmpeg
-i foo.mkv
-i bar.png
-filter_complex "[0:v][1:v]overlay"
-vcodec libx264
myresult.mkv
(为了便于阅读,这里使用多行,通常这是一个命令行)。
现在,除了png图像有自己的alpha通道外,我还会在视频上混合此图像时应用自定义整体透明度。
在上面的示例中,图像在视频顶部100%可见 - 或至少在其Alpha通道完全不透明的部分可见。
有没有办法添加自定义整体不透明度或透明度混合因子,例如opacity=0.5
或其他什么,这会使图像只有50%可见?
答案 0 :(得分:10)
我想我明白了:
ffmpeg
-i foo.mkv
-i bar.png
-filter_complex "[1:v]format=argb,geq=r='r(X,Y)':a='0.5*alpha(X,Y)'[zork];
[0:v][zork]overlay"
-vcodec libx264
myresult.mkv
0.5
是不透明度因子。我包括format=argb
,所以它也适用于没有自己alpha通道的叠加图片。
答案 1 :(得分:9)
除geq
之外的另一个选项是colorchannelmixer
。
[1:v]format=argb,colorchannelmixer=aa=0.5[zork]