我想用FFMPEG将我的32位视频(.avi或.mov)RGB + A转换为.3g2格式,并保留Alpha通道。
它应该是那样的
ffmpeg -i C:\Users\naldo\Desktop\test.avi -vcodec libx264 -acodec libfaac -ab 48k -ar 22050 -ac 2 C:\Users\naldo\Desktop\test.alpha.3g2
但它不起作用。 有任何想法吗 ? 谢谢!
答案 0 :(得分:1)
H.264,您选择的编解码器,不支持alpha。 H.263也不是3GP的默认编解码器。
修改:根据支持论坛上的更多信息given和参考file,这里是alpha堆叠方法的答案。
参考视频中没有Alpha通道。在那里做了什么,alpha流与颜色通道形成的图像堆叠在一起,处理应用程序使用图像的后半部分作为合成密钥。
为此,请使用:
ffmpeg -i in.mov -filter_complex "[0]transpose=2,split[v][va];[va]alphaextract[a];[v][a]hstack" -c:v libx264 out.3g2
根据参考文件,视频首先以90度CCW旋转。请注意,该引用使用H.263,而ffmpeg的编码器仅支持某些预设大小。对于H.264没有这样的限制,这在我的命令中使用。
要根据评论中命令的设置进行编码,请使用
ffmpeg -i in.mov -filter_complex "[0]transpose=2,split[v][va];[va]alphaextract[a];[v][a]hstack,scale=640x360,setdar=18/16" -c:v mpeg4 -vb 400k -r 20 -c:a aac -ar 22050 out.alpha.3g2
答案 1 :(得分:0)
QuickTime支持alpha和WebM。
ffmpeg -i image%04d.png output.webm