How can I specify the codecs used with the MediaRecorder API? The only option I see is for mimeType which isn't really sufficient. Cramming in the codecs in the mimeType option doesn't seem to work.
var mediaRecorder = new MediaRecorder(
outputMediaStream
),
{
mimeType: 'video/webm; codecs="opus,vp8"'
}
);
This results in a WebM stream with Vorbis and VP8:
FFMPEG STDERR: Input #0, matroska,webm, from 'pipe:':
Metadata:
encoder : QTmuxingAppLibWebM-0.0.1
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0(eng): Video: vp8, yuv420p, 640x360, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Stream #0:1(eng): Audio: vorbis, 44100 Hz, stereo, fltp (default)
If I make a MediaStream that only has an audio track (no video), then the MediaRecorder outputs Opus audio in an Ogg container:
FFMPEG STDERR: Input #0, ogg, from 'pipe:':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp
Metadata:
ENCODER : Mozilla44.0.2
How can I get Opus audio with VP8 video in a WebM container with the MediaRecorder API?
Firefox v44.0.2
Check out the Chrome LayoutTests for isTypeSupported()
, the mimeType
used there should be applicable to the MediaRecorder
constructor.