Я пытаюсь научиться записывать мультимедиа в браузере, и, возможно, я слишком усложняю ситуацию. Существует множество простых примеров, но я увяз в той части, когда записи помещаются в объект Blob
с произвольно выбранным типом носителя, не проверяя, поддерживается ли этот формат. Поэтому я предполагаю, что есть список, или люди просто продолжают опираться на прошлый опыт.
Например, из Mido22/MediaRecorder-sample:
mediaOptions = {
video: {
tag: 'video',
type: 'video/webm',
ext: '.mp4',
gUM: {video: true, audio: true}
},
audio: {
tag: 'audio',
type: 'audio/ogg',
ext: '.ogg',
gUM: {audio: true}
}
};
media = mv.checked ? mediaOptions.video : mediaOptions.audio;
//...
function makeLink(){
let blob = new Blob(chunks, {type: media.type })
//...
или из с использованием MDN API записи медиапотока:
var blob = new Blob(chunks, { 'type' : 'audio/ogg; codecs=opus' });
спецификации и их различная документация в основном являются общими описаниями, что вполне понятно, поскольку пользовательские агенты должны их реализовать.
Первый ответ на этот вопрос в значительной степени соответствует тому, что я имел в виду, но мне было интересно, есть ли есть ли где-нибудь более доступный и актуальный список?
ОБНОВЛЕНИЕ: мне кажется, что я только что вылез из-под камня, потому что, как только я опубликовал это, я понял 2 наиболее очевидных способа...
- Запросите формат мультимедиа на http://caniuse.com/.
- Поддерживаемые форматы мультимедиа MDN
После указателей @Kaiido:
MediaRecorder.isTypeSupported(mime)
. Кроме того, вы можете везде оставить браузер по умолчанию (new Blob(chunks)
), который в настоящее время кодируется как VP8/opus как на хроме, так и на FF. - person Kaiido   schedule 05.02.2017getSupportedTypes()
pull request, который был сделан в соответствии со спецификациями, поэтому будем надеяться, что в ближайшее время он появится в браузерах. - person Kaiido   schedule 05.02.2017