层黑&背景上的白色视频所以黑色像素在FFMPEG中是透明的

时间:2018-02-04 02:46:22

标签: ffmpeg

我试图将包含黑白动画文字的视频混合到静态背景图像上。我可以成功地混合它们,但无论我使用什么混合模式,我都无法获得我想要的效果。

我正在寻找类似于Photoshop的效果'添加'混合模式,其中每个像素的颜色值加在一起。这导致顶层(视频)具有黑色像素的位置没有变化,从而有效地使黑色背景显得透明。

这就是我想要实现的目标: enter image description here

ffmpeg -i text.mp4 -loop 1 -i image.jpg \ -filter_complex 'blend=all_mode=addition' -t 1 result.mp4

我尝试了blend过滤器的所有模式,但它们都没有产生这种效果。我认为Addition是可以工作的,但结果视频有粉红色调。也许颜色通道之间存在一些不匹配?

我怎样才能得到我正在寻找的结果?

1 个答案:

答案 0 :(得分:2)

如果无需显示视频中的黑色像素,则可以使用

ffmpeg -i text.mp4 -loop 1 -i image.jpg \
 -filter_complex '[0]split[m][a];[m][a]alphamerge[keyed]; \
                  [1][keyed]overlay=eof_action=endall' result.mp4

alphamerge过滤器将其第二个输入的灰度版本添加为第1个alpha通道。叠加过滤器对其输入进行alpha混合。