Javascript 使用MediaRecorder以MP4格式从网络摄像头录制视频

Javascript 使用MediaRecorder以MP4格式从网络摄像头录制视频,javascript,video,webcam,mp4,web-mediarecorder,Javascript,Video,Webcam,Mp4,Web Mediarecorder,当我在支持MP4和MediaRecorder(Linux上的Firefox)的浏览器中使用JS MediaRecorder以MP4格式录制网络摄像头时,网络摄像头会启动,但不会录制 当MediaRecorder的mimeType设置为video/webm时,录制工作正常,但当我将mimeType设置为video/mp4时,问题就出现了 我用以下代码记录: if(navigator.mediaDevices){ var约束={audio:true,video:true}; navigator.me

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

当MediaRecorder的mimeType设置为
video/webm
时,录制工作正常,但当我将mimeType设置为
video/mp4
时,问题就出现了

我用以下代码记录:

if(navigator.mediaDevices){
var约束={audio:true,video:true};
navigator.mediaDevices.getUserMedia(约束)。然后(函数(流){
mediaRecorder=新的mediaRecorder(流,{mimeType:“video/mp4”});
mediaRecorder.start();
});
}否则{
console.log(“不支持媒体记录器”);
}
我希望在支持的浏览器中执行代码时,网络摄像头会开始录制,但不会输出
console.log
,并且在控制台中出现以下错误:

NotSupportedError:不支持操作

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

MP4: MediaRecorder:


但是只有webm录制可以工作。

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

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

ffmpeg-i input.webm-预设超高速输出.mp4


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

你检查过MediaRecorder的结果了吗。isTypeSupported({mimeType:“video/mp4”})看看它是否受支持吗?它是
false
mp4在哪个浏览器中受支持?它不是特定于浏览器的,也可能取决于机器上安装的软件。或设备的处理能力,即多线程CPU或硬件图形编码支持。在Windows上尝试Chrome,看看它是否有效。也可以考虑在选项中指定编码率。