Roc*_*uts 10 video transparency alpha ffmpeg filter
假设我有一个视频foo.mkv
和一个图像bar.png
(恰好包含一个alpha通道).我可以将此图像混合在视频上,如下所示:
ffmpeg
-i foo.mkv
-i bar.png
-filter_complex "[0:v][1:v]overlay"
-vcodec libx264
myresult.mkv
Run Code Online (Sandbox Code Playgroud)
(为了便于阅读,这里使用多行,通常这是一个命令行).
现在,除了具有自己的alpha通道的png图像之外,我还会在将此图像混合到视频上时应用自定义整体透明度.
在上面的示例中,图像在视频顶部100%可见 - 或至少在其Alpha通道完全不透明的部分.
有没有办法添加自定义整体不透明度或透明度混合因子,类似于opacity=0.5
什么,什么,这将使图像只有50%可见?
Roc*_*uts 12
我想我明白了:
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
Run Code Online (Sandbox Code Playgroud)
0.5
不透明度因子在哪里.我包括format=argb
所以它也适用于没有自己的alpha通道的叠加图像.
另外一个选择geq
是colorchannelmixer
.
[1:v]format=argb,colorchannelmixer=aa=0.5[zork]
Run Code Online (Sandbox Code Playgroud)