将 PNG 转换为透明的 webm 视频

Convert PNGs to webm video with transparency

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

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

2016-07-13 起,可以使用 alpha 通道 (VP9a) 对 VP9/webm 视频进行编码。

您只需要在该日期之后编译的 ffmpeg 的副本。顺便说一句,你只需要写:

ffmpeg -i frames/%03d.png output.webm

FFmpeg 理解 png 格式并将设置默认帧速率 25 fps 和 yuva420p 像素格式输出。

您还可以使用以下命令将已经包含 alpha 通道的视频转换为具有透明度的 webm 视频:

ffmpeg -i myVideoWithAlphaChannel.mov -c:v libvpx -vf format=rgba myVideoWithAlphaChannel.mov.webm

myVideoWithAlphaChannel.mov(用Blender3D生成)的格式是:

  • "Quicktime"格式
  • "PNG" 编解码器

作为输出:

  • H.264
  • RGBA

Here Blender 3D rendering configuration