2016-11-21 82 views
2

WebM是否支持音频编解码器的PCM?WebM中的PCM支持和Chrome的WebM实现

我没想到它做了,但是我看到的WebM documentation page有一个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'); 

回答

3

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

作为一个快照,这里是目前在谷歌的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工作更奇特的支持。

+0

令人兴奋!谢谢。 – Brad

3

WebM不支持PCM音频。

WebM的文件包括与包括Vorbis或作品 音频编解码器压缩的VP8或VP9 视频编解码器和音频流的压缩视频流。

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

VP8/VP9视频和Vorbis /音频作品被允许在一个有效的.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的一个很好的回答。

+0

对Chromium的PCM支持的这个答案的一部分今天不再成立。现在支持Chromium中的PCM:https://cs.chromium.org/chromium/src/content/renderer/media_recorder/media_recorder_handler_unittest.cc – Sepehr