【发布时间】:2020-02-10 11:46:12
【问题描述】:
我正在使用以下配置通过 getUserMedia API 读取 1080p 和 720p 外部摄像机流
let c_constraints = {
audio: false,
video: {
deviceId: { exact: videoValue },
width: { min: 320, ideal: 1280, max: 1920 },
height: { min: 144, ideal: 720, max: 1080 },
framerate: { min: 15, ideal: 30, max: 60 }
}
}
navigator.mediaDevices.getUserMedia(c_constraints)
.then((stream) => c_handleStream(stream))
.catch((e) => c_handleError(e));
并使用以下方式记录流
try {
c_recorder = new MediaRecorder(currentCameraStream);
} catch (e) {
throw e
}
问题 -> 这在高端设备上运行良好,但在具有 4GB RAM、英特尔酷睿 i3 的设备上,在以 1080p 和 720p 录制时我得到滞后,并且视频仅在前 3 个时断断续续秒,但剩下的视频就好了。
另外,在 VLC 媒体播放器中播放这段录制的视频时,计时器直接从 00:01 跳到 00:03,
如果这是内存/缓冲区问题,其他 blob 也会受到影响。我错过了什么吗,我应该以不同的方式使用 MediaRecorder,还是使用任何不同的选项。
PS:我曾尝试使用 Muaz Khan 爵士的 RecordRTC,但由于 CPU 使用率在上述机器上飙升至 70% 以上,这使得机器超级慢。
请对此有所了解。
【问题讨论】:
标签: google-chrome electron recording web-mediarecorder