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');
答案 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的一个很好的答案。