【问题标题】:How can I convert WebM file to WebP file with transparency?如何将 WebM 文件转换为具有透明度的 WebP 文件?
【发布时间】:2023-03-15 07:02:01
【问题描述】:

我用 ffmpeg 试过了。

ffmpeg input.webm output.webp

input.webm 包含透明背景,但 alpha 通道在 webp 中变为白色。我认为这意味着 alpha 通道没有融合在一起。

我用this command提取帧:

ffmpeg -i input.xxx -c:v libwebp output_%03d.webp

它还给了我白色背景的 webp 文件。

如何使用 Alpha 通道正确转换它?或者我应该从其他格式(扩展名)转换它吗?

【问题讨论】:

    标签: ffmpeg webm webp


    【解决方案1】:

    使用-c:v libvpx 选项输入之前更改解码器,如本例中的第一帧(-frames:v 1):

    ffmpeg -c:v libvpx -i input.webm -frames:v 1 -c:v libwebp -y output.webp
    

    This comment 说:

    FFmpeg 的原生 VPx 解码器不解码 alpha。你必须使用 libvpx 解码器

    您可以使用 ffmpeg -decoders | grep libvpx 检查您的解码器,您应该会看到如下输出:

     V....D libvpx               libvpx VP8 (codec vp8)
     V....D libvpx-vp9           libvpx VP9 (codec vp9)
    

    根据该输出,libvpx 将是 VP8 的解码器,libvpx-vp9 是 VP9 的解码器。

    您可以使用ffprobe input.webm 检查视频的编解码器。你应该会看到这样的输出:

        Stream #0:0(eng): Video: vp8, yuv420p(progressive), 640x360, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
        Metadata:
          alpha_mode      : 1
    

    用于将整个 webm (VP8) 转换为动画 webp 使用:

    ffmpeg -c:v libvpx -i input.webm output.webp
    

    用于将整个 webm (VP9) 转换为动画 webp 使用:

    ffmpeg -c:v libvpx-vp9 -i input.webm output.webp
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 2020-01-05
    • 2018-10-19
    • 2021-10-03
    • 2014-03-28
    • 1970-01-01
    • 2021-05-14
    相关资源
    最近更新 更多