WebRTC屏幕共享在chrome(Retina MacBookPro)低帧率



在Chrome浏览器之间制作屏幕共享演示时,我遇到了一个大问题,这取决于WebRTC。

环境:MacBookPro macOS 10.13.3铬:64.0.3282.119

为了获取屏幕媒体源 Id,我还制作了一个 chrome 扩展,背景脚本.js代码如下:

var screenOptions = ['screen', 'window'];
......
chrome.desktopCapture.chooseDesktopMedia(screenOptions, port.sender.tab, onAccessApproved);

当我在我的 html javascript 中获取媒体源 Id 时,请求屏幕媒体如下:

var constraints = {
video: {
mandatory: {
chromeMediaSource: 'desktop',
maxWidth: 1280,
maxHeight: 720,
maxFrameRate: 30,
minAspectRatio: 1.77,
chromeMediaSourceId: sourceId
}
}
};
navigator.mediaDevices.getUserMedia(constraints).then(gotLocalStream).catch(function (e) {
alert('getUserMedia() error: ' + e.name);
});

问题来了:当我在 chrome://webrtc-internals 中检查WebRTC统计信息时,我发现当我在主显示器中播放视频时,googFrameRateInput非常低(<=10),而googFrameRateInput可以在主显示器中什么都不做时达到30。

googFrameRateInput

我也在Windows chrome中尝试过这个,即使在播放视频时,googFrameRateInput也可以达到24~30。

为什么googFrameRateInput在mac chrome中太低?

多谢。

更新电子6.0.2解决了这个问题。

最新更新