使用MediaRecorder以MP4格式录制来自网络摄像头的视频

时间:2019-07-23 14:11:08

标签: javascript video webcam mp4 web-mediarecorder

当我使用JS MediaRecorder在支持MP4和MediaRecorder(在Linux上为Firefox)的浏览器中以MP4格式录制网络摄像头时,网络摄像头会启动,但不会录制。

当MediaRecorder的mimeType设置为video/webm时,记录就可以了,但是当我将mimeType设置为video/mp4时,就会出现问题。

我用以下代码记录:

if (navigator.mediaDevices) {
        var constraints = {audio: true, video: true};
        navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {
            mediaRecorder = new MediaRecorder(stream, {mimeType: "video/mp4"});
            mediaRecorder.start();
});
} else {
console.log("media recorder is not supported");
}

我希望在支持的浏览器中执行代码时,网络摄像头会开始记录,但是不会输出console.log,并且在控制台中会出现错误:

NotSupportedError: Operation is not supported

我知道我的浏览器同时支持mp4和MediaRecorder:

MP4:https://caniuse.com/#search=mp4 MediaRecorder:https://caniuse.com/#search=mediarecorder

但只有webm录制有效。

1 个答案:

答案 0 :(得分:0)

我发现Chromium也不支持mp4录制,因此我决定在视频上传后在服务器端进行转换。

由于它是GNU / Linux,为了加快转换速度,我使用了:

ffmpeg -i input.webm -preset superfast output.mp4

如果有更快的方法,我想知道它们。