5

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

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 添加到有效的代码中。谢谢马克4o!

4

1 回答 1

7

您没有为输出指定视频编解码器,因此它使用.movH.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 通道。

于 2013-07-03T16:39:30.403 回答