我正在通过具有以下配置的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的设备上,以1080p和720p录制时,英特尔酷睿i3却出现lags,并且视频仅在开始的3秒钟内断断续续,剩余的视频就可以了。
此外,在VLC媒体播放器中播放此录制的视频时,计时器直接从00:01跳到00:03,
如果这是内存/缓冲区问题,其他斑点也会受到影响。我是否缺少某些东西,是否应该以其他方式或通过任何其他选项使用MediaRecorder。
PS:我曾尝试使用Muaz Khan爵士的RecordRTC,但对CPU来说似乎很沉重,因为上述机器上的CPU使用率激增了70%以上,这使该机器非常慢。
请对此加以说明。
最后成功了,如果对任何人有帮助,如果您正在录制的机器处于省电模式,则可以通过从控制面板启用性能模式来解决音频/视频不同步的问题