当我使用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记录有效。
发布于 2019-07-24 00:16:35
我发现Chromium也不支持mp4录制,所以我决定在视频上传后在服务器端进行转换。
由于它是GNU/Linux,为了加快转换速度,我使用了:
ffmpeg -i input.webm -preset superfast output.mp4
如果有更快的方法,我想知道它们。
https://stackoverflow.com/questions/57166088
复制相似问题