【问题标题】:Convert WEBM to HEVC with alpha使用 alpha 将 WEBM 转换为 HEVC
【发布时间】:2021-03-30 02:39:57
【问题描述】:

我正在尝试将具有透明度的简单 WEBM 视频转换为具有 alpha 的 HEVC。我找不到任何关于如何在不丢失 alpha 通道的情况下进行转换的资源。

我不知道 FFMPEG 是否可以:

由于 FFmpeg 不包含本机 hevc 编码器,因此无法在此处进行编码请求。

参见。 https://trac.ffmpeg.org/ticket/7965

这是 WEBM 视频示例:https://filebin.net/c4orn2u48jb3gufr

【问题讨论】:

    标签: ffmpeg video-encoding


    【解决方案1】:

    VideoToolbox 支持 alpha / 透明度

    FFmpeg 没有自己的 HEVC/H.265 编码器。它支持 7 个 HEVC/H.265 外部编码器(大多数是基于硬件的),包括目前不支持 alpha 的 libx265。

    目前只有 VideoToolbox HEVC 编码器 (-c:v hevc_videotoolbox) 支持 alpha。这是 Apple 硬件的硬件加速编码器。这在 FFmpeg 4.3 发布后已更新,因此您必须使用当前 git 分支的构建,或等待 4.4。

    示例命令改编自相关commit

    ffmpeg -i input%03d.png -c:v hevc_videotoolbox -allow_sw 1 -alpha_quality 0.75 -vtag hvc1 output.mov
    

    仅当-alpha_quality 值不为 0(默认为 0,范围 0-1)时,才会使用“带 Alpha 的 HEVC 视频”配置文件。请参阅ffmpeg -h encoder=hevc_videotoolbox 了解更多信息。

    此答案可能会因不断发展而过时,因此请务必研究当前情况。

    检查编码器是否支持 alpha / 透明度

    $ ffmpeg -h encoder=libx265
    Supported pixel formats: yuv420p yuvj420p yuv422p yuvj422p yuv444p yuvj444p gbrp yuv420p10le yuv422p10le yuv444p10le gbrp10le yuv420p12le yuv422p12le yuv444p12le gbrp12le gray gray10le gray12le
    

    如果它支持 alpha,它将具有名称中带有 a 的像素格式,例如 yuva420prgba。如您所见,libx265 尚不支持 alpha。

    值得关注的相关错误报告

    【讨论】:

    • 所以不可能做到这一点,至少对于 FFMPEG?
    • 您知道替代解决方案吗?
    • @BastienRobert 坚持使用 VP9 (webm) 进行 alpha,或研究其他 HEVC 编码器。
    • @BastienRobert 看起来像Apple's Compressor can do it
    • 好像无法将 webm 导入压缩器
    猜你喜欢
    • 1970-01-01
    • 2020-08-10
    • 2021-11-14
    • 2011-06-06
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 2018-03-19
    • 2023-03-03
    相关资源
    最近更新 更多