WebRTC应用程序上的带宽和质量控制



我想知道WebRTC api是否会自动更改带宽以增加体验。据我所知,WebRTC具有根据需要更改和限制最大带宽的功能。我寻求答案的问题是我们应该手动执行此操作还是WebRTC在后台执行此操作?

我现在正在做一个项目,我的主管关心的主要主题是乐队;我通常认为WebRTC api会自动完成这项工作,我们不需要手动更改它,但是话又说回来,我找不到有关该主题的太多信息,因为它不常用。 (我也在使用EasyRTC(开源webrtc api(来缓解自己的编码。

提前感谢人们。

1(你不需要手动管理bandwidht。WebRTC为您完成大多数常见的带宽管理任务和服务质量。

2(WebRTC不会限制连接带宽,但您的网络仪器和设备会限制。

这是基于观察的示例 -

1(我在WebRTC的帮助下制作了基于网络的视频会议应用程序。

2(我的笔记本电脑被用作主机设备。(即初始连接(

3(请2-3名同事加入会议室(他们都在同一个网络上(。视频流质量很好。

4(再次,请了更多的同事和我一起去房间。现在一些视频蒸汽开始关闭。

5( 您的连接带宽确实会影响质量。如果许多用户使用相同的接入点(AP(,则带宽将被划分,这将导致非常糟糕的流媒体。

6( 假设一个 1080p 视频需要 15mbps 的带宽连接。然后 8 个连接将占用 8 * 15 = 120mbps 的总带宽。这超过了我的笔记本电脑 100mbps lan 端口的关闭速度。这将导致某些视频关闭。

8 Mbps = 1 MB/秒

查看此链接 - WebRTC 带宽要求

:)

不知道这是否会帮助某人,但至少在 iOS 的GoogleWebRTC (1.1.31999(org.webrtc:google-webrtc:1.0.22672的 android 版本中,PeerConnection实例中有方法。

对于 iOS:

let updateBitrateSuccessful = pc.setBweMinBitrateBps(300000, currentBitrateBps: 1000000, maxBitrateBps: 3000000)
print("Update rtc connection bitrate " + (updateBitrateSuccessful ? "successful" : "failed"))

分别,对于安卓:

boolean updateBitrateSuccessful = pc.setBitrate(300000, 1000000, 3000000);
Log.d("AppLog", "Update rtc connection bitrate " + (updateBitrateSuccessful ? "successful" : "failed"));

最新更新