【问题标题】:PCM support in WebM, and Chrome's WebM implementationWebM 中的 PCM 支持,以及 Chrome 的 WebM 实现
【发布时间】:2016-11-21 20:45:28
【问题描述】:

WebM 是否支持音频编解码器的 PCM?

我认为没有,但我在 WebM documentation page 上看到支持 BitDepth 字段并带有以下评论:

BitDepth - 每个样本的位数,主要用于 PCM。

如果 WebM 确实支持 PCM,Chrome 的实现是否支持?如果是,什么是适合与 MediaRecorder 一起使用的内容类型?这些都返回 false:

MediaRecorder.isTypeSupported('video/webm;codecs=h264,pcm');
MediaRecorder.isTypeSupported('video/webm;codecs=h264,wav');
MediaRecorder.isTypeSupported('video/webm;codecs=h264,adpcm');
MediaRecorder.isTypeSupported('video/webm;codecs=h264,pcm_s16le');
MediaRecorder.isTypeSupported('audio/wav');

【问题讨论】:

    标签: google-chrome html5-audio webm web-mediarecorder


    【解决方案1】:

    最新的 Chromium 现在支持 PCM。 Here is a reference 获取 Chromium 中 MediaRecorder 的有效 MIME 类型列表。

    作为快照,以下是 Google Chrome 版本 64.0.3282.167(官方构建)(64 位)当前支持的版本:

    MediaRecorder.isTypeSupported("video/webm")
    MediaRecorder.isTypeSupported("video/webm;codecs=vp8")
    MediaRecorder.isTypeSupported("video/webm;codecs=vp9")
    MediaRecorder.isTypeSupported("video/webm;codecs=vp8.0")
    MediaRecorder.isTypeSupported("video/webm;codecs=vp9.0")
    MediaRecorder.isTypeSupported("video/webm;codecs=h264")
    MediaRecorder.isTypeSupported("video/webm;codecs=H264")
    MediaRecorder.isTypeSupported("video/webm;codecs=avc1")
    MediaRecorder.isTypeSupported("video/webm;codecs=vp8,opus")
    MediaRecorder.isTypeSupported("video/webm;codecs=vp8,pcm")
    MediaRecorder.isTypeSupported("video/WEBM;codecs=VP8,OPUS")
    MediaRecorder.isTypeSupported("video/webm;codecs=vp9,opus")
    MediaRecorder.isTypeSupported("video/webm;codecs=vp9,pcm")
    MediaRecorder.isTypeSupported("video/webm;codecs=vp8,vp9,opus")
    MediaRecorder.isTypeSupported("video/webm;codecs=h264,opus")
    MediaRecorder.isTypeSupported("video/webm;codecs=h264,vp9,opus")
    MediaRecorder.isTypeSupported("video/x-matroska;codecs=avc1")
    MediaRecorder.isTypeSupported("audio/webm")
    MediaRecorder.isTypeSupported("audio/webm;codecs=opus")
    MediaRecorder.isTypeSupported("audio/webm;codecs=pcm")
    

    请注意,如果您正在运行 Chromium,则需要使用 proprietary_codecs 构建它,以便使用 h264/avc1 支持一些更奇特的功能。

    【讨论】:

    • 令人兴奋!谢谢。
    【解决方案2】:

    WebM 不支持 PCM 音频。

    WebM 文件由使用 VP8 或 VP9 压缩的视频流组成 使用 Vorbis 或 Opus 压缩的视频编解码器和音频流 音频编解码器。

    来源 - http://www.webmproject.org/about/

    VP8/VP9 视频和 Vorbis/Opus 音频是有效 .webm 文件中唯一允许的编解码器。为什么你对 WebM 的定义如此狭隘?

    我们决定以这种方式定义 WebM 文件,因为我们想为用户做最好的事情。

    来源 - https://www.webmproject.org/about/faq/

    关于您的文档说明:

    我认为没有,但我在 WebM 文档页面上看到 支持带有以下注释的 BitDepthfield

    WebM 是 Matroska 格式的子集。您引用的页面只是其网站上 Matroska 规范的抄本:

    https://www.matroska.org/technical/specs/index.html

    WebM 页面借用所有内容并注明是否支持某个属性。 'Bits per sample,主要用于 PCM。' - 是原始的 Matroska 规范,就像所有其他行一样,例如'每个连续通道的水平角度表,见附录。' - 注意没有给出附录,但在原始 Matroska 规范页面上有一个指向附录的超链接。 Matroska 规范具有特定的属性描述,因为 Matroska 支持 PCM 音频。

    有关 Chrome 中的 PCM 支持,请参阅 Sepehr 的精彩回答。

    【讨论】:

    猜你喜欢
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2022-11-07
    • 2020-01-02
    • 2014-06-15
    • 1970-01-01
    相关资源
    最近更新 更多