亮相LiveVideoStackCon 2021,網(wǎng)易云信分享QoS優(yōu)化之道
2021年4月16日,多媒體技術(shù)領(lǐng)域盛會LiveVideoStackCon音視頻技術(shù)大會在上海舉行。本屆會議以“新技術(shù),新機會”為主題,聚焦在音頻、視頻、圖像等技術(shù)的最新探索與應(yīng)用實踐。數(shù)十位業(yè)內(nèi)知名講師與來自全國各地的音視頻工程師、多媒體工程師、圖像算法工程師、運維與物聯(lián)網(wǎng)工程師等分享了技術(shù)創(chuàng)新與最佳實踐。
網(wǎng)易云信資深音視頻引擎開發(fā)工程師王興鶴受邀參會,在“網(wǎng)絡(luò)傳輸與RTC”專題會場中進行了題為《網(wǎng)易云信QoS優(yōu)化實踐》的主題演講,分享了在弱網(wǎng)環(huán)境下,提供良好音視頻傳輸服務(wù)的思路和優(yōu)化經(jīng)驗,以及云信在QoS優(yōu)化方面具體的實踐和思考,精彩的分享獲得參會者的一致好評。
如何應(yīng)對爆發(fā)式的音視頻數(shù)據(jù)增長?
隨著AI和5G的到來,以及疫情的變化,音視頻數(shù)據(jù)呈現(xiàn)爆發(fā)式增長,音視頻應(yīng)用變得更加廣泛,人們對音視頻的品質(zhì)需求也越來越高,視頻分辨率從高清發(fā)展為超高清、VR,視頻幀率也已出現(xiàn)60fps、120fps等應(yīng)用,交互式的應(yīng)用對端到端延時也提出了更高的要求。與此同時,設(shè)備的硬件性能也突飛猛進。
可以預(yù)見,隨著5G的應(yīng)用更為普遍,網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)將會呈現(xiàn)爆發(fā)式增長,大量數(shù)據(jù)將會給網(wǎng)絡(luò)傳輸帶來巨大的挑戰(zhàn)——網(wǎng)絡(luò)服務(wù)提供商需要在技術(shù)層面做到對瞬息萬變的網(wǎng)絡(luò)環(huán)境有很強的適應(yīng)能力,需要合理利用抗丟包、抗抖動,擁塞控制等手段應(yīng)對變化的網(wǎng)絡(luò),需要在不同的網(wǎng)絡(luò)特征和用戶場景下充分發(fā)揮各項技術(shù)的優(yōu)勢,揚長避短,在有限的網(wǎng)絡(luò)資源中,找到延時、畫質(zhì)、流暢三者之間的最佳平衡點,提供良好的音視頻傳輸服務(wù)。
王興鶴在演講中認為:“雖然網(wǎng)絡(luò)中常見的問題有丟包、抖動、擁塞、延時等不同的分類,但這些弱網(wǎng)的分類并不獨立存在,而是會相互轉(zhuǎn)化,相互影響;另外從接收端QoE的角度來看,網(wǎng)絡(luò)問題固然會是我們分析弱網(wǎng)影響的重要部分,但音視頻鏈路中其它環(huán)節(jié)帶來的體驗上的影響也不容小覷。為了給用戶帶來良好的音視頻體驗,QoS優(yōu)化是整體的綜合性的優(yōu)化。”
用技術(shù)組合拳實現(xiàn)效果最大化
針對上述的一系列弱網(wǎng)問題,網(wǎng)易云信的QoS引擎采用了大量的技術(shù)手段進行抵抗,比如重傳、FEC、GCC、Jitter Buffer等,具體闡述如下:
• FEC(前向糾錯碼)是在發(fā)送端額外發(fā)送一些冗余數(shù)據(jù),用于抵抗網(wǎng)絡(luò)丟包。當(dāng)接收端檢測到媒體數(shù)據(jù)發(fā)生丟包時,就可以利用接收到的冗余數(shù)據(jù)進行丟包恢復(fù)。
• 重傳是當(dāng)接收端檢測到丟包時通過反饋給發(fā)送端丟包信息(NACK)進行相應(yīng)數(shù)據(jù)的重傳,最大的好處是碼率利用率高,缺點是會引入額外的丟包恢復(fù)抖動,從而拉大延時。
• Jitter Buffer的作用是以最低的緩沖延時代價消除數(shù)據(jù)抖動,提供流暢的播放幀率,也就是說,在解碼之前的任何環(huán)節(jié)引入的數(shù)據(jù)抖動,都會匯總到Jitter Buffer模塊處理抖動消除。
除了重傳、FEC等常規(guī)手段之外,長期參考幀技術(shù)打破了傳統(tǒng)的向前一幀的參考規(guī)則,可以更加靈活地選擇參考幀;在有丟包的場景下,接收端不需要等待丟包恢復(fù)也能繼續(xù)顯示畫面,其最大的好處是低延時,不需要等待重傳恢復(fù),但是帶來了壓縮率的犧牲,在相同碼率下表現(xiàn)為圖像質(zhì)量的犧牲;但長期參考幀比較適合1V1的場景,而多人場景時,需要大小流和SVC發(fā)揮作用,在帶寬不足時,不同用戶對清晰優(yōu)先和流暢優(yōu)先的需求不一樣,SVC和大小流提供了靈活的機制滿足不同應(yīng)用的需求。
而具體到應(yīng)用場景時,王興鶴說:“我們要注意到不同應(yīng)用場景的需求,比如通信場景更多的是用FEC,重傳作為輔助,提升實時性。直播場景更多是用重傳,F(xiàn)EC作為輔助,提升清晰度。”
這意味著,每一種技術(shù)都有各自的優(yōu)點和不足,在解決主要問題的同時,可能會帶來不同的收益降低;在不同的應(yīng)用場景下,對于技術(shù)的選擇也有不同要求。因此,僅僅支持了這些功能并不是很困難,困難的是如何調(diào)試優(yōu)化各個模塊的相關(guān)參數(shù),讓各個功能相互配合。
經(jīng)過一系列綜合優(yōu)化后,網(wǎng)易云信的音視頻通話可以做到端到端延時小于 200 ms,最高可抗 1000 ms 網(wǎng)絡(luò)抖動,在網(wǎng)絡(luò)丟包 70% 時仍能正常通話。
制定差異性策略 持續(xù)優(yōu)化
在王興鶴看來,QoS的優(yōu)化是個長期持續(xù)的過程,主要體現(xiàn)在三個方面:
首先,是各類算法還需要不斷的升級,F(xiàn)EC、重傳、Jitter Buffer、Neteq、GCC等都需要進一步地精細化,并結(jié)合AI技術(shù)和反饋機制,適應(yīng)不同網(wǎng)絡(luò)的情況。
其次,要理解不同場景、不同用戶的個性化需求,細分服務(wù)的顆粒度,提供更加差異化的產(chǎn)品和服務(wù)。例如1v1場景大多是交互性的應(yīng)用,因此對延時和流暢要求較高;而多人場景中又可以細分1vN、NvN等,多人會議中,網(wǎng)絡(luò)中傳輸流的數(shù)量將呈指數(shù)型上升,對算法和整體穩(wěn)定性提出了更高的挑戰(zhàn)。不同的場景的需求有明顯的特征,我們需要將這些特征跟我們的算法和架構(gòu)深度關(guān)聯(lián),將一些損失和收益的平衡做到極致,提供最高性價比的服務(wù)。
最后,要注意數(shù)據(jù)結(jié)果對產(chǎn)品迭代和優(yōu)化的驅(qū)動,不能只是在理論層面做得很完善,還要結(jié)合實際執(zhí)行效果的觀測來建立閉環(huán)的反饋和優(yōu)化機制。
這也是網(wǎng)易云信QoS引擎迭代升級的思路:對大部分場景,或者大部分指標(biāo)都有優(yōu)化技術(shù)的項目,那就相對簡單,可以全面鋪開落地;而對于有得有失的技術(shù)優(yōu)化,首先需要做大量的對比測試、驗證,盡可能得出各種情況下的實驗室理論結(jié)果;其次要求所有已發(fā)版的相關(guān)功能參數(shù)可控,結(jié)合線上實際的觀測數(shù)據(jù),做數(shù)據(jù)挖掘和綜合分析,形成數(shù)據(jù)驅(qū)動下的閉環(huán)效應(yīng),線上數(shù)據(jù)一方面可以驗證實驗室的測試結(jié)果,另一方面可進一步指導(dǎo)后續(xù)優(yōu)化工作。
“QoS優(yōu)化最大的困難是如何把握各項資源的平衡,并尋找到最佳平衡點“,王興鶴總結(jié)說,這也是網(wǎng)易云信Qos引擎在進行的深層次的QoS優(yōu)化工作——基于場景的優(yōu)化,制定差異化的策略適應(yīng)不同的場景,并不斷迭代優(yōu)化。