使用 VP9 的 webrtc 屏幕共享 - 低 fps

webrtc screen-sharing with VP9 - low fps

我正在 chrome 中使用带有 VP9 编解码器的 webrtc 测试浏览器屏幕共享。问题是发送方视频的编码帧率非常低——大约 5fps。我不会在任何地方限制它,这里是我的 getDisplayMedia 选项:

    const stream = await navigator.mediaDevices.getDisplayMedia({
      video: {
        frameRate: { ideal: 30, max: 60 },
        width: { ideal: 1280, max: 1920 },
        height: { ideal: 720, max: 1080 }
      },
      cursor: 'always',
    });

有趣的是,VP8 编解码器没有问题 - 帧速率非常正常 (20-30fps)。 此外,当我用网络摄像头替换屏幕共享时,即使使用 VP9,它也有 20-30fps。 所以问题只出在与 VP9 的屏幕共享上。对于这种特定情况,WebRtc 是否有任何限制?有什么方法可以禁用它吗?

这是我正在使用的简单测试工具的代码(它基于 webrtc 示例): https://github.com/MikolajMGT/web-rtc-test

VP9 屏幕共享显然上限为 5fps。 https://bugs.chromium.org/p/webrtc/issues/detail?id=13016 有一些细节。