webrtc配置以减少发送的流量

问题描述 投票:0回答:1

我正在使用webrtc技术开发音频视频通话功能。我遇到一个参与者处于不稳定网络(移动网络)中的情况。在这种情况下,参与者的音频和视频开始冻结,出现延迟等。我认为,要解决此问题,必须对应用程序进行配置,以使其发送较少的流量。

请告诉我存在哪些webrtc配置可以减少发送的流量?

configuration webrtc
1个回答
0
投票

最繁忙的流量将是视频。解决方案之一是限制视频质量或完全禁用视频质量。您可以使用以下代码限制视频质量:

const displayMediaStream = await getDisplayMediaStream();
        let supports = navigator.mediaDevices.getSupportedConstraints();

        if (!supports["width"] || !supports["height"] || !supports["frameRate"] || !supports["facingMode"]) {
          // We're missing needed properties, so handle that error.
        } else {
          let constraints = {
            width: { min: 640, ideal: 1920, max: 1920 },
            height: { min: 400, ideal: 1080 },
            aspectRatio: 1.777777778,
            frameRate: { max: 30 }
          };

          displayMediaStream.getVideoTracks()[0].applyConstraints(constraints)
        }
        return displayMediaStream.getVideoTracks()[0];

您可以使用这些值。

此外,问题可能出在浏览器编解码器中。例如,在屏幕共享的情况下,FF使用编解码器产生高质量的视频流,这在静态图片(例如共享文档)的情况下很好,当用户通过屏幕共享广播动态视频(例如youtube视频)时,就会出现问题。在这种情况下,FF通过发送约7 Gb的流来使网络过载。同时,谷歌浏览器更智能,可以通过使用更好的编解码器来适应流量。我会使用不同的浏览器进行测试,如果问题出在FF,您可以尝试强制FF使用更好的编解码器(例如Google Chrome使用的编解码器),因为在检测FF浏览器时必须修改SDP,您可以这样做如此处所述:How can I change the default Codec used in WebRTC?

© www.soinside.com 2019 - 2024. All rights reserved.