簡體   English   中英

WebRTC 應用上的帶寬和質量控制

[英]Bandwidth and Quality Control on WebRTC App

我想知道 WebRTC api 是否會自動更改帶寬以增加體驗。 據我所知,WebRTC 具有更改和限制最大值的功能。 我們希望的帶寬。 我尋求答案的問題是我們應該手動執行此操作還是 WebRTC 無論如何都要在后台執行此操作?

我現在正在做一個項目,我的主管關心的主要問題是帶寬; 我通常認為 WebRTC api 會自動完成這項工作,我們不需要手動更改它,但是我再次找不到有關該主題的太多信息,因為它不常用。 (順便說一下,我也在使用 EasyRTC(開源 webrtc api)讓自己從硬編碼中解脫出來。)

在此先感謝人們。

1) 您不需要手動管理帶寬。 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)版本和適用於 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"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM