2

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

我现在正在做一个项目,我的主管关心的主要主题是带宽;我通常认为 WebRTC api 会自动完成这项工作,我们不需要手动更改它,但由于它不常用,我再次找不到有关该主题的太多信息。(顺便说一句,我还使用 EasyRTC(开源 webrtc api)让自己从编码中解脱出来。)

提前感谢人们。

4

2 回答 2

3

1)您不需要手动管理带宽。WebRTC 为您完成大部分常见的带宽管理任务和服务质量。

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

这是基于观察的示例-

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

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

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

4)再一次,请更多的同事加入我的房间。现在一些视频流开始关闭。

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

6) 假设一个 1080p 视频占用 15mbps 的带宽连接。那么 8 个连接将占用 8 * 15 = 120mbps 的总带宽。这超过了我的笔记本电脑 100mbps 局域网端口的下行速度。这将导致某些视频被关闭。

8 Mbps = 1 MB/秒

查看此链接 - WebRTC 带宽要求

:)

于 2019-09-25T14:23:10.753 回答
0

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

对于 iOS:

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

分别对于 Android:

boolean updateBitrateSuccessful = pc.setBitrate(300000, 1000000, 3000000);
Log.d("AppLog", "Update rtc connection bitrate " + (updateBitrateSuccessful ? "successful" : "failed"));
于 2021-12-05T04:05:20.253 回答