我正在尝试在 WebRTC 呼叫中录制远程视频流。我认为主要问题是我不能使用编解码器来压缩录制的视频。我试过这个代码 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),也会发生同样的情况。唯一接受的文件类型是带有 vp9 编码的 .webm,但它的大小太大。
2 回答
明月笑刀无情
TA贡献1828条经验 获得超4个赞
并非所有浏览器都支持您尝试使用的所有格式。在任何情况下,您都在抱怨 VP9 的输出太大,但它是可用的最有效的编解码器之一。
您的实际问题是默认比特率太高,而您没有设置它们。试试这个:
const mediaRecorder = new MediaRecorder(stream, {
audioBitsPerSecond: 128 * 1000, // 128 kbit/s
videoBitsPerSecond: 2 * 1000 * 1000, // 2 Mbit/s
});
根据您的质量/文件大小权衡需要调整这些值。
添加回答
举报
0/150
提交
取消