2013-07-02 150 views
5

合并影片我试图合并两个视频一起,都具有透明性,使用命令FFMPEG - 与透明

ffmpeg.exe -i person2.mov室颤“[中]规模= 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

并以“不具有相同的transparecy”我的意思是,背景是黑色的而不是透明的,所以如果我把一个视频放在另一个上面,那么后面的视频会被前面一个黑色部分覆盖。

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

+0

请显示您的完整ffmpeg控制台输出。你是什​​么意思,“当我试图合并这个视频(Output_people.mov)与另一个视频,它不具有相同的透明度”? – LordNeckbeard

+0

通过“当我试图合并这个视频(Output_people.mov)与另一个视频,它不具有相同的透明度”,我的意思是没有透明度,而只是得到一个黑色的背景。 – user1829136

+0

您还应该在“合并”Output_people.mov(可以省略'-report')时显示您的命令和完整的控制台输出。 – LordNeckbeard

回答

7

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

您可以通过ffmpeg -encoders查看ffmpeg支持的编码器列表。像ffmpeg -h encoder=qtrle这样的命令将列出特定于该编码器的信息,包括支持的像素格式。包含字符串argb,rgba,abgr,bgra,gbrayuva的像素格式具有alpha通道。