Javascript WebRTC远程流大小太大
我正在尝试在WebRTC调用中录制远程视频流。我认为主要的问题是我不能使用编解码器来压缩录制的视频 我试过这个密码Javascript WebRTC远程流大小太大,javascript,video-streaming,webrtc,video-codecs,Javascript,Video Streaming,Webrtc,Video Codecs,我正在尝试在WebRTC调用中录制远程视频流。我认为主要的问题是我不能使用编解码器来压缩录制的视频 我试过这个密码 let options = {mimeType: 'video/mp4;codecs=vp9'}; if (!MediaRecorder.isTypeSupported(options.mimeType)) { console.error(`${options.mimeType} is not Supported`); options = {mimeType:
let options = {mimeType: 'video/mp4;codecs=vp9'};
if (!MediaRecorder.isTypeSupported(options.mimeType)) {
console.error(`${options.mimeType} is not Supported`);
options = {mimeType: 'video/mp4;codecs=vp8'};
if (!MediaRecorder.isTypeSupported(options.mimeType)) {
console.error(`${options.mimeType} is not Supported`);
options = {mimeType: 'video/mp4'};
if (!MediaRecorder.isTypeSupported(options.mimeType)) {
console.error(`${options.mimeType} is not Supported`);
options = {mimeType: ''};
}
}
}
在上面的代码片段中,我正在尝试.mp4类型,但编解码器被拒绝。如果我尝试其他编解码器,比如h.264而不是vp9,也会发生同样的情况
唯一可接受的文件类型是.webm,采用vp9编码,但其大小太大
代码基于源代码根据我在同一场景中的经验,我们有两种选择
我确实写了一个屏幕录音机,尽管我试过了。我遵循了选项1:P
并非所有浏览器都支持您尝试使用的所有格式。在任何情况下,您都会抱怨VP9的输出太大,但它是最有效的编解码器之一
您的实际问题是默认比特率太高,而您没有设置它们。请尝试以下方法:const mediaRecorder = new MediaRecorder(stream, {
audioBitsPerSecond: 128 * 1000, // 128 kbit/s
videoBitsPerSecond: 2 * 1000 * 1000, // 2 Mbit/s
});
根据质量/文件大小的权衡需要调整这些值。然后您应该加载videoconverter.js,并在客户端浏览器中的工作线程上执行非常繁重的转换任务。这很有帮助,但我想进一步减小大小。还有什么我能做的吗?@Lauren进一步降低比特率。@Lauren我不知道你的期望是什么,但视频占用了大量带宽。@Lauren所以,你需要大约600 kbit/s的视频流。真的很紧。您将要缩小分辨率。避免使用宽屏,只需使用4:3的纵横比即可。也许640x480,看起来还可以。@Brad,我用了你的代码,录制了12分钟,视频大小显示217MB。我应该做什么来缩小它的尺寸?