Czy WebM obsługuje PCM dla kodeka audio?
Nie sądziłem, że tak, ale widzę to na Strona dokumentacji WebM że istnieje wsparcie dla BitDepth
pole z następującym komentarzem:
BitDepth - Bity na próbkę, najczęściej używane do PCM.
Jeśli WebM obsługuje PCM, czy implementacja Chrome? A jeśli tak, to jaki jest odpowiedni typ zawartości do użytku z MediaRecorder? Wszystkie one zwracają 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");
Odpowiedzi:
3 dla odpowiedzi № 1PCM jest teraz obsługiwany w najnowszym Chromium. Oto referencja listę ważnych typów MIME dla MediaRecorder
w Chromium.
Oto migawka, która jest obecnie obsługiwana w Google Chrome w wersji 64.0.3282.167 (Official Build) (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")
Zauważ, że jeśli używasz Chromium, musisz mieć go wbudowanego proprietary_codecs
wsparcie dla niektórych bardziej egzotycznych z h264 / avc1 do działania.
3 dla odpowiedzi № 2
WebM nie obsługuje dźwięku PCM.
Pliki WebM składają się ze strumieni wideo skompresowanych za pomocą VP8 lub VP9 kodeki wideo i strumienie audio skompresowane za pomocą Vorbis lub Opus kodeki audio.
Źródło - http://www.webmproject.org/about/
Wideo VP8 / VP9 i audio Vorbis / Opus są jedynymi kodekami dozwolonymi w prawidłowym pliku .webm. Dlaczego zdefiniowałeś WebM tak wąsko?
Zdecydowaliśmy się zdefiniować pliki WebM w ten sposób, ponieważ chcieliśmy zrobić to, co najlepsze dla użytkowników.
Źródło - https://www.webmproject.org/about/faq/
W odniesieniu do notatki dotyczącej dokumentacji:
Nie sądziłem, że tak, ale na stronie dokumentacji WebM widzę, że jest wsparcie dla BitDepthfield z następującym komentarzem
WebM jest podzbiorem formatu Matroska. Strona, którą cytujesz, jest po prostu kopią specyfikacji Matroska ze strony internetowej:
https://www.matroska.org/technical/specs/index.html
Strona WebM zapożycza całą zawartość i zauważa, czy propozycja jest obsługiwana, czy nie. Linia „Bity na próbkę, najczęściej używane do PCM”. - jest oryginalną specyfikacją Matroski, podobnie jak wszystkie inne linie, np. „Tabela kątów poziomych dla każdego kolejnego kanału, patrz załącznik.” - zauważ, że nie ma podanego dodatku, ale naoryginalna strona specyfikacji Matroska zawiera hiperłącze do dodatku. Specyfikacja Matroski ma ten szczególny opis właściwości, ponieważ Matroska obsługuje dźwięk PCM.
Aby uzyskać wsparcie PCM w Chrome, zobacz świetną odpowiedź Sepehr.