【问题标题】:Convert PNGs to webm video with transparency将 PNG 转换为具有透明度的 webm 视频
【发布时间】:2016-04-30 16:18:44
【问题描述】:

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

【问题讨论】:

标签: video ffmpeg webm avconv


【解决方案1】:

您还可以使用以下命令将已经包含 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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 感谢您的洞察力。但是,如果我运行您的命令,它无法正常工作,avconv 会抱怨 Specified pix_fmt is not supported。我正在使用avconv version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2000-2014
    • 切换到最近的 ffmpeg 构建并尝试。
    • 还是没有运气。我现在使用avconv version 11.3-6:11.3-1~trusty,但仍然得到Specified pix_fmt is not supported
    • 在您的回答(现已更新)中,您写的是 avconv 而不是 ffmpeg。所以我也使用了avconv。使用 ffmpeg,谢谢!
    • 对于任何对 Ubuntu LTS 感到沮丧的人:VP9+alpha 不适用于 ffmpeg 2.8.x,您应该获得 ffmpeg 3.x。
    【解决方案3】:

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

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

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

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

    【讨论】:

    • 我添加了-b:v 800k 以提高视频比特率以获得更好的图像质量。默认值不够好。
    • 对我不起作用。 ffmpeg 4.3.2,视频不透明。
    猜你喜欢
    • 1970-01-01
    • 2021-10-13
    • 2018-06-05
    • 1970-01-01
    • 2015-01-26
    • 2012-01-29
    • 1970-01-01
    • 2011-06-04
    • 2021-12-02
    相关资源
    最近更新 更多