当我使用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录制有效。
答案 0 :(得分:0)
我发现Chromium也不支持mp4录制,因此我决定在视频上传后在服务器端进行转换。
由于它是GNU / Linux,为了加快转换速度,我使用了:
ffmpeg -i input.webm -preset superfast output.mp4
如果有更快的方法,我想知道它们。