WebM中的PCM支持,以及Chrome的WebM实现

时间:2016-11-21 20:45:29

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

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');

2 个答案:

答案 0 :(得分:5)

现在最新的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工作的一些更具异国情调的工作。

答案 1 :(得分: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页面借用了所有内容并记录了是否支持某个属性。每个样本的行'比特,主要用于PCM。' - 是原始的Matroska规范,就像所有其他行一样,例如'每个连续通道的水平角度表,请参阅附录。' - 请注意,没有给出附录,但在原始的Matroska规范页面上有一个指向附录的超链接。 Matroska规范具有特定的属性描述,因为Matroska支持PCM音频。

对于Chrome中的PCM支持,请参阅Sepehr的一个很好的答案。