FFmpeg:使用PNG遮罩为视频添加Alpha通道

8
我看到FFmpeg可以合并/混合两个带有Alpha通道的视频,并使用qtrle编解码器对带有Alpha通道的视频进行编码,但是否可能将PNG文件蒙版(黑白或带有Alpha通道的PNG)应用于视频,以便得到具有应用PNG的Alpha通道的视频?
以下是概念图片:
原始视频: Original video 带有Alpha通道的PNG文件“蒙版”: PNG file with alpha channel 结果: Result 甚至可以将黑白图像作为Alpha通道的蒙版: bnw image 任何帮助都将不胜感激,谢谢!
1个回答

7

使用 alphaextractalphamerge 滤镜:

ffmpeg -i video -vf "movie='image',alphaextract[a];[in][a]alphamerge" -c:v qtrle output.mov

1
谢谢,它在一个帧中起作用了,但是您的设置让我理解了,所以这是有效的命令: ffmpeg -y -i input.mp4 -loop 1 -i mask_with_alpha.png -filter_complex "[1:v]alphaextract[alf];[0:v][alf]alphamerge" -c:v qtrle -an output.mov - Rodrigo Polo
嗨。我在这里问了一个类似的问题:http://stackoverflow.com/questions/38951088/writing-alpha-channel-into-decoded-ffmpeg-frame 有什么编程方法可以做到这一点吗? - Mic
1
你使用了蒙版文件还是黑白文件?我没有完全理解你得到的输出结果。 - Jeffin
1
我试图遮罩一个已经透明的视频,并且需要混合alpha通道。添加另一个alphaextract过滤器并将blend过滤器设置为darken就可以解决问题:-filter_complex "[1:v]alphaextract[alf];[0:v]alphaextract[oalf];[alf][oalf]blend=all_mode=darken[res];[0:v][res]alphamerge" 这样做可以消除输入上的-loop 1需求。 - Tyzoid
如何仅针对单个图像执行相同操作? - pete

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接