聲網 2020 實時大會後的弱網對抗實踐

聲網Agora發表於2021-10-17

聲網2020實時大會後的弱網對抗實踐

voip

基於 IP 的音視訊傳輸是一種實時視訊通話技術,經由 Internet 協議來達成音視訊通話,以及多媒體會議。VoIP 可用於包括 VoIP 電話、智慧手機、個人計算機在內的諸多網際網路接入裝置,通過蜂窩網路、Wi-Fi、同軸電纜、光纖等裝置進行信令傳輸、音視訊通話、傳送簡訊,以及部分控制資訊的傳輸。

背景介紹

一旦行動電話或者監控裝置連結網路時,由於網際網路的異構和各種媒介的傳輸效率的遞減,必然出現網路傳輸中音視訊資料包的丟失,因而直接影響使用者的感官、以及主觀體驗。在 TCP 中有 ack 反饋進行驗證包的完整性,而在 UDP 中增加 NACK 進行丟包的確認和判斷,以及 RR 和 SR 相關的報告用於統計 RTT 相關資料。WebRTC 橫空出世,以及自帶的 JitterBuffer 和 NetEQ 的實現,讓音視訊 UDP 的傳輸有了足夠的保證。

img

2020 年聲網的 RTE 大會,有幸參與線上分享,學習到很多內容,其中音視訊實時傳輸分會中提到的優化項,以及聲網優化的結果對自己留下深刻印象。以下介紹一下當時看的 PPT,以及看完之後學習實時音視訊之後針對性優化相關內容。

資料驅動

來自北京大學王選計算機所的張行功老師介紹《資料驅動的實時視訊傳輸技術》一章節。在網際網路興旺的現在,實時視訊無處不在,包括不限於視訊會議、視訊直播、VR/AR、360°全景視訊、以及音視訊監控,音視訊通話等。

img

但是實時視訊傳輸面對很多挑戰,包括:網路限制、不同網路之間傳輸延遲、抖動比較大,網路切換或 4G 網路丟包比較嚴重,視訊傳輸質量低,容易卡頓、馬賽克、黑屏、綠屏等現象,直接影響使用者體驗。TCP 雖然可以解決一部分問題,但是對於網路敏感程度卻有待加強,同時會有一定延遲,不利於實時傳輸。WebRTC 的興起,可以解決大部分問題,包括基於丟包和時延的控制器,可以極大程度緩解。同時強化學習的引入進一步提高問題的解決能力。之後 BBR 模型對於傳輸提供很好的解決,包括低延遲和高頻寬。但是仍然是基於 RTT 的模型,並沒有公平性參考,適應性沒有那麼強。同時 BBR 是基於探測的方式,對於網路探測是滯後的。

參考模型

而張老師團隊提供的將數學模型與統計模型結合的 CC 提供了一個很好的思路。包括以公平性為目標函式的數學模型+無模型網路狀態的統計模型結合,如下圖所示:

img

該模型主要目標就是為了解決兩個不可知和一個滯後的問題:包括使用者不可知,網路狀態不可知,以及網路狀況反饋滯後。

img

優化提升

學習借鑑相關經驗之後,對我司產品進行了優化,主要包括以下幾部分:

第一步完善測試環境。因為我司產品大部分條件下都是有線連線方式,而且有些是光纖介入,網路環境相對比較穩定。所以在 Android 和 linux 產品中增加支援 Traffic Control 命令的方式進行資料傳送端的網路模擬。TC 可以支援丟包、網路抖動、延遲、頻寬限制等多種方式,可以最大化接近實時網路環境,進一步提升實驗室模擬的準確度和測試方法。為之後弱網優化提供更加健全、方便的測試手段,並且結合 TC 命令,完成測試 APP 的開發,可以結合命令進行隨意設定,實現無開發經驗的測試小姐姐也可以隨心所欲的測試驗證。

img

第二步提升弱網對抗技術。我司產品沿用比較早期的 WebRTC 版本,相對於最新的已經無法抗衡,但是為了穩定性,只能進行部分功能逐步優化,壓測之後再上線,因此增加軟體工程師的維護難度。我們學習最新的 BBR 模型,以及張老師提出的資料驅動網路模型,優化了網路探測的精度,同時開啟 FEC 和 NACK 同時工作的機制,針對 JTB 中部分流程進行判斷條件優化和更改,提升了處理效率。將原先公司 VGA 模式下 TC 設定 20%丟包率就卡頓無畫面,提升到 720P TC 設定 30%可以流暢播放的體驗改善。相關演算法經過一個多月質量部壓測已經上線,效果提升明顯,得到使用者的讚賞。在和競爭對手的正面 PK 中,由於我司產品弱網視訊質量較好而贏得客戶的合作機會,並且簽署長期備忘錄。

img

第三步 H264 編解碼引數的調整。由於 H264 編碼引數的不同,對於編碼後位元速率的影響非常大,因此結合硬體廠商的支撐力度,以及軟編軟解的優化,我們對部分編解碼引數進行了調整和優化,包括 CABAC 和 CAVLC 的選擇(之前廠商提供的介面中就有,但是原先設計開發的大佬們沒有用到這個引數),包括位元速率控制引數的調研和更改,包括 IDR 和 Intra-Refresh 引數的引進和優化,包括接下來要和廠商對接的 LRT 和 SRT(長短參考幀的適配)等。適當微調編解碼引數,在不影響視訊質量和使用者主觀感受前提下,可以把編碼後的位元速率控制在最優的狀態,對於條件較差的網路環境壓力就減輕很多,從而最大程度上在源頭上節省位元速率、提升編碼質量,全力保障使用者體驗。

問題和目標

以上三部分內容是我們最近在做的優化和提升,但是相關內容對於丟包和延遲對抗還可以,但是抖動非常嚴重時,就無能為力了。由於我司產品 WIFI 模組能力受限(成本考量問題)導致 wifi 傳輸資料時,抖動非常厲害,而且有一定丟包率,該硬體效能直接導致我們研究的弱網對抗體系效果欠佳。除了更換更加穩定更加可靠的 wifi 模組之外,高抖動也是我們弱網對抗團隊接下來要面對的挑戰。

img

下一個研發週期,我們繼續保持學習,鑽研,認真查閱資料嘗試深入理解張老師團隊提出的資料驅動的相關模型;嘗試結合自身裝置環境和使用場景,形成自主研發的資料模型進行網路狀況探測、擁塞控制和網路靈敏反饋體系,進一步提升 WiFi 和 4G 連結模式下更加可靠、高質量的視訊傳輸,為公司產品的推廣提供有力的保障。

結語

路漫漫其修遠兮,吾將上下而求索。實時音視訊傳輸的弱網對抗是一個長期的過程,我們將勇於嘗試,學習借鑑,不敢保證行業領先,但是提供完美的實時視訊通話質量是我們團隊的目標:畢竟明天取得所有成就都源於今天的不將就。

以上是自己的分享,隨時歡迎和大家一起交流探討,感興趣的可以一鍵三聯。

相關文章