2016-11-21 2 views
2

Unterstützt WebM PCM für den Audio-Codec?PCM-Unterstützung in WebM und die WebM-Implementierung von Chrome

ich nicht glaube, es tut, aber ich sehe auf den WebM documentation page, dass es Unterstützung für ein BitDepth Feld mit dem folgenden Kommentar ist:

bitdepth - Bits pro Probe, vor allem für PCM verwendet.

Wenn WebM PCM unterstützt, funktioniert die Implementierung von Chrome? Und wenn ja, was ist der geeignete Inhaltstyp für die Verwendung mit MediaRecorder? Diese alle geben false zurück:

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

Antwort

3

PCM wird jetzt im neuesten Chromium unterstützt. Here is a reference für die Liste der gültigen Mime-Typen für MediaRecorder in Chrom.

als Momentaufnahme, hier ist die, unterstützt derzeit in Google Chrome Version 64.0.3282.167 (Official Erstellung) (64-Bit):

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") 

Beachten Sie, dass, wenn Sie Chrom ausgeführt werden, müssen Sie haben Es baute mit proprietary_codecs Unterstützung für einige der exotischeren mit h264/avc1 zu arbeiten.

+0

Spannend! Vielen Dank. – Brad

3

WebM unterstützt PCM-Audio nicht.

WebM-Dateien bestehen aus Videoströmen komprimierten mit der VP8 oder VP9 Video-Codecs und Audio-Streams komprimierte mit dem Vorbis oder Opus Audio-Codecs.

Quelle - http://www.webmproject.org/about/

VP8/VP9 Video und Vorbis/Opus Audio ist die einzig in einer gültigen .webm Datei erlaubt Codecs. Warum haben Sie WebM so eng definiert?

Wir entschieden uns, WebM-Dateien auf diese Weise zu definieren, weil wir das Beste für die Benutzer tun wollten.

Quelle - https://www.webmproject.org/about/faq/

In Bezug auf Ihre Dokumentation Anmerkung:

ich nicht glaube, es tat, aber ich sehe auf der WebM Dokumentation Seite, dass es Unterstützung für a BitDepthfield mit folgendem Kommentar

WebM ist eine Teilmenge des Matroska-Formats. Die Seite, die Sie zitieren ist einfach eine Kopie der Matroska-Spezifikation von seiner Website:

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

Die WebM Seite leiht sich die Inhalte und stellt fest, ob eine propery unterstützt wird oder nicht. Die Zeile 'Bits pro Probe, meist für PCM verwendet.' - ist die ursprüngliche Matroska-Spezifikation, genau wie alle anderen Linien, z. 'Tabelle der horizontalen Winkel für jeden aufeinanderfolgenden Kanal, siehe Anhang.' - Beachten Sie, dass kein Anhang angegeben ist, aber auf der ursprünglichen Matroska-Spezifikationsseite befindet sich ein Hyperlink zu einem Anhang. Die Matroska-Spezifikation hat diese besondere Eigenschaft, da Matroska PCM-Audio unterstützt.

Für PCM-Unterstützung in Chrome, sehen Sie eine gute Antwort von Sepehr.

+0

Ein Teil dieser Antwort über Chromiums PCM-Unterstützung gilt heute nicht mehr. Es gibt jetzt Unterstützung für PCM in Chromium: https://cs.chromium.org/chromium/src/content/renderer/media_recorder/media_recorder_handler_unittest.cc – Sepehr