2個月前,我在某直播平臺上看了一場游戲直播爸舒,那叫一個難受蟋字,連延遲帶卡頓,看到后半場卡的我直上廁所扭勉,回來后發(fā)現(xiàn)畫面雖變了但仍舊卡鹊奖,一氣之下果斷的關(guān)了直播。上個月去上海參加華為手機的發(fā)布會涂炎,想在現(xiàn)場做一下直播忠聚,移動4G竟然連信號都沒有设哗,只能退回到3G網(wǎng)絡(luò)在朋友群發(fā)一些圖片。面對移動網(wǎng)絡(luò)的問題两蟀,只能是沉默再沉默了网梢。
其實不只是我看直播會卡,網(wǎng)上還有很多人反映類似情況赂毯,某些硬件論壇探討直播延遲卡頓的帖子還真是不少战虏。很多人以為用PC和手機看直播或者做直播時延遲卡頓是硬件的事,其實硬件只是其中的一部分因素党涕,直播軟件的自身原因是另一部分因素烦感,主要因素還是在于網(wǎng)絡(luò)帶寬,以及為直播應(yīng)用提供云服務(wù)的視頻云計算產(chǎn)品膛堤。所以手趣,視頻云計算產(chǎn)品的能力,決定這一個互動直播產(chǎn)品的運行情況骑祟。為了讓大家更清楚回懦,下面,我們就來談?wù)劵又辈ビ龅降碾y題以及視頻云的直播解決方案次企。
用戶體驗怯晕,決定了互動直播在技術(shù)上面臨三大難題
使用互動直播的用戶最關(guān)心三個問題:延時、畫面流暢性與直播清晰度缸棵。理想的直播狀態(tài)當(dāng)然是低延時舟茶、高流暢性與高清晰度。這意味著堵第,延時最大不超過500ms吧凉,越小越好;流暢性最好能夠接近電影及電視的播放速率踏志;清晰度上阀捅,至少是用戶主觀能夠感受到清晰。
原因在于针余,當(dāng)前4G/wifi的復(fù)雜網(wǎng)絡(luò)傳輸情況饲鄙,并不能滿足用戶對互動直播產(chǎn)品視頻體驗的要求甚至說是基本需求,實現(xiàn)直播時用戶的最佳體驗圆雁,高清晰對眼下的移動直播而言其實是一個比較奢侈的存在忍级。其實只要不會頻繁出現(xiàn)延遲、卡頓等情況伪朽,就已經(jīng)是提高了用戶體驗轴咱。
除了4G網(wǎng)絡(luò)本身的傳輸速率限制,當(dāng)前直播行業(yè)的上千款移動直播產(chǎn)品其實是在瓜分有限的4G網(wǎng)絡(luò)資源。尤其是在同一直播現(xiàn)場大量移動直播應(yīng)用同時工作的時候朴肺,會嚴(yán)重加劇延遲與卡頓窖剑,有些用戶甚至無法正常使用移動直播。事實上戈稿,當(dāng)前中國仍舊有80%的移動環(huán)境處于弱網(wǎng)狀態(tài)苛吱,基本上所有的移動直播,內(nèi)容傳輸商都會更加困難器瘪。相關(guān)數(shù)據(jù)顯示,有75%的視頻從業(yè)者認(rèn)為绘雁,延遲和卡頓阻礙了直播行業(yè)的整體發(fā)展橡疼。延時、卡頓不流暢庐舟、不夠清晰欣除,可以說是實現(xiàn)互動直播產(chǎn)品在技術(shù)上面臨的三大難題。
云計算是直播的本源挪略,視頻云技術(shù)是解決三大難題的關(guān)鍵
互動直播在技術(shù)上有三大難題历帚,但火熱的直播行業(yè)同時讓用戶暴漲,這便給直播的發(fā)展帶來了更大的壓力杠娱,生存難度也由此增加挽牢。作為一款好用的直播產(chǎn)品,都應(yīng)該思考在直播過程中摊求,如何滿足用戶低延時流暢清晰的基本需求禽拔?這里的延時是端到端延時,包括采集室叉、編碼睹栖、打包、發(fā)送茧痕、網(wǎng)絡(luò)傳輸野来、接收、解碼到顯示踪旷。其中網(wǎng)絡(luò)傳輸延時占比最大曼氛,要做到低延時在傳輸層一般選用udp的傳輸協(xié)議,讓數(shù)據(jù)包盡力傳輸埃脏。因為TCP的延時較大搪锣,尤其在wifi/4G這種丟包時有發(fā)生的時候。然而UDP是沒有qos的彩掐,無法保障其傳輸?shù)姆?wù)質(zhì)量构舟,而滿足用戶的流暢清晰的視覺體驗,要求傳輸一定要是可靠的,這就需要在應(yīng)用層自主開發(fā)實現(xiàn)一套流控機制狗超,來提供整個互動直播鏈路的服務(wù)保障弹澎。
那么,到底如何來實現(xiàn)這樣一套行之有效的流控方案呢努咐?我們可以從12月10日中國軟件技術(shù)大會上苦蒿,網(wǎng)易視頻云技術(shù)專家朱玲的分享中找到一些答案。在技術(shù)上渗稍,面對互動直播出現(xiàn)的亂序佩迟、延時抖動、丟包等不確定的網(wǎng)絡(luò)現(xiàn)象竿屹,網(wǎng)易視頻云將解決方案分成三個步驟:即平滑發(fā)送报强、扛丟包以及抗抖動。
步驟1:平滑發(fā)送拱燃。就是在發(fā)送端維護一個rtp數(shù)據(jù)包buffer秉溉,這是一個發(fā)送優(yōu)先級隊列。當(dāng)rtp數(shù)據(jù)包產(chǎn)生后并不是立刻發(fā)送碗誉,而是存放到buffer中緩存召嘶。并開啟一個發(fā)送定時器線程,將數(shù)據(jù)包從數(shù)據(jù)buffer中取出哮缺,存放在優(yōu)先級隊列中進行發(fā)送弄跌。在發(fā)送之前,會進行網(wǎng)絡(luò)探測尝苇,根據(jù)探測到的可用帶寬碟绑,自適應(yīng)的調(diào)節(jié)發(fā)送速率。這樣茎匠,就實現(xiàn)了優(yōu)先選擇以及自適應(yīng)性的精準(zhǔn)發(fā)送格仲,根據(jù)帶寬的情況適當(dāng)發(fā)送數(shù)據(jù)包。
步驟2:扛丟包诵冒。網(wǎng)絡(luò)丟包有兩種原因:一種是網(wǎng)絡(luò)中存在的固有凯肋,隨機丟包,另一種是網(wǎng)絡(luò)擁塞丟包汽馋。針對隨機丟包侮东,可以通過fec前向糾錯編碼方式,對傳輸?shù)拿襟w包添加合理的冗余包豹芯,接收端利用接收到部分媒體包部分冗余包恢復(fù)出全部媒體包的信息悄雅,讓接收端對丟包完全無感知,另一方面铁蹈,也是大多數(shù)情況我們要做的事情宽闲,就是避免擁塞,對我們的發(fā)送的數(shù)據(jù)流量做合理的帶寬估計,并基于最大發(fā)送帶寬估計中容诬,控制視頻編碼器娩梨,發(fā)送最有效的,最有價值的視頻信息览徒。
步驟3:抗抖動:狈定。除了丟包這種常見網(wǎng)絡(luò)問題以外,抖動也是無處不在的习蓬,所謂抖動就是包到達對端的延時是變化的纽什,不一定的,導(dǎo)致的結(jié)果播放的不流暢躲叼;那要解決網(wǎng)絡(luò)抖動問題稿湿。一般是引入jitter buffer策略,在解碼器與顯示之間維持一個緩沖buffer押赊,當(dāng)數(shù)據(jù)解碼之后,并不是立刻送去播放包斑,而是估計一個抖動最優(yōu)值流礁,延時這個最優(yōu)值時間再講數(shù)據(jù)播放,實現(xiàn)的難點是如何動態(tài)估計這個jitter罗丰。 JitterBuffer值過大則延時增加神帅,過小則抖動導(dǎo)致播放不流暢情況惡化∶鹊郑可以采用卡爾曼濾波方式自回歸迭代逐步收斂到最優(yōu)的jitter值找御,作為我們的估計值,來平滑抖動绍填。
經(jīng)過以上3個步驟霎桅,目前網(wǎng)易視頻云服務(wù)的互動直播產(chǎn)品的平均延時,在網(wǎng)絡(luò)較好情況下讨永,端到端延時控制在200ms左右滔驶,在網(wǎng)絡(luò)差強人意的情況下,丟包率保持在20%以內(nèi)卿闹。這個數(shù)據(jù)揭糕,足可以為用戶提供較為流暢清晰的視頻體驗。
更多行業(yè)引入互動直播锻霎,視頻云3步解決方案很有意義
在移動直播誕生以后著角,我認(rèn)為直播會是各行業(yè)快速連接互聯(lián)網(wǎng)的方式之一。隨著直播行業(yè)的迅速發(fā)展旋恼,多個行業(yè)都開始對直播這種方式來進行一些適當(dāng)?shù)倪\用吏口。譬如在線教育行業(yè),最大的短板就是師生互動問題,沒有互動只有內(nèi)容會大大降低用戶體驗锨侯,將直播引入嫩海,同時配合教學(xué)白板的互動,立即就有了現(xiàn)場交流感囚痴。再如健康醫(yī)療行業(yè)的臨床教學(xué)叁怪,也是一個難題,不可能所有學(xué)生都進入手術(shù)室現(xiàn)場去學(xué)習(xí)深滚,手術(shù)直播則可以解決這個問題奕谭,教授們在做手術(shù)的時候同時做直播與學(xué)生進行交流,這是醫(yī)療行業(yè)的一個非常大的進步痴荐。除此血柳,直播互動在娛樂秀場、游戲生兆、會場及安防監(jiān)控等領(lǐng)域的應(yīng)用难捌,已成業(yè)內(nèi)常態(tài)。
互動直播應(yīng)用的越廣泛鸦难,也就意味著直播行業(yè)面臨的挑戰(zhàn)越大根吁,每個行業(yè)不同的直播都可能遇到更多的問題。實際上合蔽,這也是對每個互動直播產(chǎn)品背后的視頻云服務(wù)產(chǎn)品解決方案的挑戰(zhàn)击敌。目前而言,在我見過的視頻云計算解決方案中拴事,網(wǎng)易視頻云的三步式解決方案沃斤,思路是是比較簡潔的,同時也是比較有效的刃宵。簡單的通過平滑發(fā)送衡瓶、扛丟包以及抗抖動三步,就能達到延時控制在200ms左右牲证,丟包率在20%以內(nèi)鞍陨。事實上,業(yè)內(nèi)人士都能看出來這個解決方案背后的框架模型設(shè)計从隆、算法以及技術(shù)難度怕是并不簡單诚撵,其團隊?wèi)?yīng)該付出了很多的努力。獨創(chuàng)了3步視頻云解決方案键闺,應(yīng)該為團隊感到驕傲寿烟,但我認(rèn)為,這個思路可以為更多的云計算團隊指引一個方向辛燥,才是其最大的價值筛武。
當(dāng)前來看缝其,互動直播在將來對于一些行業(yè)的重要性是不言而喻的,同時移動直播行業(yè)的發(fā)展與壯大也需要更多視頻云為其提供解決方案徘六。這就需要更多的云計算產(chǎn)品能持續(xù)創(chuàng)新直播技術(shù)内边,以為各行業(yè)的升級轉(zhuǎn)型以及直播行業(yè)的進一步發(fā)展,提供更多的幫助待锈。
網(wǎng)易視頻云漠其,在技術(shù)上先一步而行,值得點贊竿音。