将PNG转换为具有透明度的webm视频

时间:2016-01-24 09:45:23

标签: video ffmpeg webm avconv

我想使用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

3 个答案:

答案 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生成)的格式为:

  • “ Quicktime”格式
  • “ PNG”编解码器

作为Ouputs:

  • H.264
  • RGBA

Here Blender 3D rendering configuration