FFMPEG - 将视频与透明度合并

fer*_*rds 5 video merge transparency alpha ffmpeg

我正在尝试将两个视频合并在一起,两个视频都具有透明度,使用命令

ffmpeg.exe -i person2.mov -vf"[in] scale = iw/2:ih/2,fade = out:300:30:alpha = 1,pad = 2*iw:ih [left]; movie = person2 .mov,scale = iw/2:ih/2,fade = out:300:30:alpha = 1 [right]; [left] [right] overlay = main_w/3:0,fade = out:300:30: alpha = 1 [out]"-b:v 768k Output_people.mov

通过这样做,我得到以下输出:

http://i263.photobucket.com/albums/ii122/Fernando461/Untitled.png

正如您所看到的,可以将两个视频放在一起.但是,当我尝试将此视频(Output_people.mov)与另一个视频合并时,它没有相同的透明度.是否有可能保持结果的透明度?

编辑1:

这是我得到的输出:https://www.dropbox.com/s/gpid1pptfio31gd/ffmpeg-20130701-193206.log

并且"它没有相同的透明度"我的意思是背景是黑色的而不是透明的,所以如果我把一个视频放在彼此的顶部,后面的那个视频被一个的黑色部分覆盖在前面.

编辑2: 将-vcodec qtrle添加到工作代码中.谢谢mark4o!

mar*_*k4o 7

您没有为输出指定视频编解码器,因此它使用默认视频编解码器来.mov处理H.264(libx264编码器)文件.但H.264不支持alpha通道.如果您希望输出视频具有透明度,则需要指定支持Alpha通道的输出视频编解码器,例如用于输入的通道,即QuickTime Animation RLE(qtrle).为此,请-c:v qtrle在输出文件名之前添加选项.另一个支持alpha通道并可以存储在.mov文件中的编解码器是png.

您可以查看ffmpegwith 支持的编码器列表ffmpeg -encoders.类似命令ffmpeg -h encoder=qtrle将列出特定于该编码器的信息,包括支持的像素格式.的像素格式,包括字符串argb,rgba,abgr,bgra,gbra,或yuva具有alpha通道.