我想使用avconv
将一系列PNG图像转换为WebM视频,从而保持透明度。
我知道输出视频中使用的像素格式必须支持透明度。所以我试过了:
$ avconv -framerate 25 -f image2 -i frames /%03d.png -pix_fmt yuva420p output.webm
不幸的是,avconv
抱怨:
Incompatible pixel format 'yuva420p' for codec 'libvpx-vp9', auto-selecting format 'yuv420p'
我正在使用ffmpeg version 2.8.4-1+b1 Copyright (c) 2000-2015 the FFmpeg developers
。
答案 0 :(得分:8)
使用VP8:
ffmpeg -framerate 25 -f image2 -i frames/%03d.png -c:v libvpx -pix_fmt yuva420p output.webm
编辑:现在,使用VP9
ffmpeg -framerate 25 -f image2 -i frames/%03d.png -c:v libvpx-vp9 -pix_fmt yuva420p output.webm
答案 1 :(得分:8)
自2016-07-13以来,可以使用Alpha通道( VP9a )对 VP9 / webm 视频进行编码。
您只需要在该日期之后编辑的 ffmpeg 副本。顺便说一下,你需要写的只有:
ffmpeg -i frames/%03d.png output.webm
FFmpeg 了解png格式,并会为输出设置25 fps和yuva420p
像素格式的默认帧速率。
答案 2 :(得分:1)
您还可以使用以下命令将已经包含alpha通道的视频转换为具有透明度的webm视频:
ffmpeg -i myVideoWithAlphaChannel.mov -c:v libvpx -vf format=rgba myVideoWithAlphaChannel.mov.webm
myVideoWithAlphaChannel.mov (由Blender3D生成)的格式为:
作为Ouputs: