網(wǎng)易視頻云朱玲:互動直播場景下的視頻核心技術(shù)實踐

12月9日-10日能庆,中國科學(xué)院軟件研究所砖瞧、中科軟科技聯(lián)合主辦的中國軟件技術(shù)大會在北京開幕屯蹦,來自國內(nèi)各大互聯(lián)網(wǎng)和IT公司的技術(shù)從業(yè)者聚集于此,共同討論交流前沿技術(shù)和發(fā)展趨勢脐区、分享最佳實踐和應(yīng)用經(jīng)驗愈诚。

不久前,網(wǎng)易視頻云在國內(nèi)首家推出了多路互動直播服務(wù),收到業(yè)內(nèi)人士的廣泛關(guān)注炕柔。在今年的中國軟件技術(shù)大會酌泰,網(wǎng)易資深音視頻工程師朱玲受邀出席,同與會者分享了網(wǎng)易視頻云在互動直播場景下的視頻核心技術(shù)實踐汗唱。


用戶需要什么樣的互動直播宫莱?

據(jù)朱玲介紹丈攒,通過長期的用戶調(diào)研和市場研究哩罪,網(wǎng)易視頻云發(fā)現(xiàn)互動直播用戶最為關(guān)心的有三個問題:

1、低延時巡验。延時最大不超過500ms际插,當(dāng)然越小越好;

2显设,流暢框弛。每秒最少十幾幀,24fps~30fps捕捂,接近電影瑟枫、電視的播放速率 ,用戶體驗佳指攒;

3慷妙,清晰。用客觀標(biāo)準(zhǔn)衡量的話允悦,當(dāng)視頻編碼后與原始視頻的峰值信噪比膝擂。要高于30db,主觀感受清晰隙弛。

那么架馋,首先需要解決的就是低延時問題。延時指的是端到端延時全闷,包括發(fā)送端叉寂、網(wǎng)路傳輸、接收端播放延時总珠,其中延時占比最大的是傳輸延時屏鳍。市場上很多直播服務(wù)采用了RTMP/TCP協(xié)議,將視頻數(shù)據(jù)流封裝成FLV格式進行傳輸姚淆,TCP協(xié)議在網(wǎng)絡(luò)OSI模型中屬于傳輸層協(xié)議孕蝉,通過擁塞控制、流量控制等算法實現(xiàn)可靠鏈接腌逢。

然而TCP協(xié)議中通過丟包重傳降淮、擁塞避免等算法來做擁塞控制,雖然保障了傳輸?shù)目煽啃裕訒r也在增大佳鳖。一些公司通過修改TCP協(xié)議棧來解決延時問題霍殴,網(wǎng)易視頻云在互動直播方面選擇了UDP作為傳輸協(xié)議。

朱玲介紹說系吩,UDP協(xié)議本身沒有QoS来庭,在流暢度方面存在一些問題。網(wǎng)易視頻云給出的解決方案是通過RTP/RTCP半傳輸半應(yīng)用層協(xié)議來實現(xiàn)可靠傳輸控制方案穿挨。一方面月弛,RTP標(biāo)準(zhǔn)協(xié)議是為了傳輸實時多媒體應(yīng)用而生的,有著豐富的擴展以及補充協(xié)議科盛,彌補了UDP協(xié)議的不足帽衙;另一方面,思科贞绵、Google普遍采用這種方案來實現(xiàn)傳輸流控厉萝,可以說這是一種工業(yè)界的標(biāo)準(zhǔn),更適用于第三方標(biāo)準(zhǔn)應(yīng)用對接榨崩。


據(jù)朱玲介紹谴垫,針對用戶的基本需求,為滿足和提升用戶體驗母蛛。網(wǎng)易視頻云自主研發(fā)了一整套的視頻流傳輸架構(gòu)翩剪,視頻采集后經(jīng)過編碼,RTP封裝溯祸,發(fā)送RTP以及RTCP的sender report到對端肢专,對端在接收、解碼過程中焦辅,將流量監(jiān)控信息實時通過標(biāo)準(zhǔn)RTCP協(xié)議反饋給發(fā)送端博杖,進行編碼以及發(fā)送的控制。

視頻傳輸在實踐過程中遇到了哪些挑戰(zhàn)筷登?

在實際的視頻傳輸過程中剃根,往往還會遇到很多意想不到的問題,比如受限于編碼器對不同內(nèi)容圖像的編碼效率以及壓縮率不同前方,RTP包的產(chǎn)生并不是均勻的狈醉,往往會有burst惠险;在IP網(wǎng)絡(luò)中,各個分組從發(fā)送方到接收方所歷經(jīng)的網(wǎng)絡(luò)途徑可能不同班巩,從而各個分組的傳輸時延也各不相同渣慕,甚至容易發(fā)生分組的到達次序發(fā)生變化;最終在接收端出現(xiàn)亂序、延時抖動逊桦、丟包等眨猎,用戶端出現(xiàn)卡頓、花屏强经、無法播放等一系列問題睡陪。

朱玲解釋說,網(wǎng)易視頻云主要從三個方面來解決這些問題匿情,即平滑發(fā)送兰迫、抗丟包、抗抖動码秉。

首先是平滑發(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ā)送速率。

其次解決丟包問題裹唆。網(wǎng)絡(luò)丟包分為兩種情況誓斥,一種是網(wǎng)絡(luò)中存在的固有,隨機丟包许帐,譬如聯(lián)路層的傳輸誤碼劳坑,另一種是網(wǎng)絡(luò)擁塞丟包。針對這兩種不同的丟包成畦,應(yīng)該采用不同的解決方法距芬,一種是前向糾錯更正FEC, 另一種是ARQ自動請求重傳。對于互動這種這種延時敏感的應(yīng)用場景循帐,網(wǎng)易視頻云選擇FEC作為丟包解決方案框仔。

“為了解決丟包問題,我們的思路是盡力傳輸?shù)幕A(chǔ)上進行擁塞控制拄养,盡量避免發(fā)生擁塞丟包离斩,當(dāng)聯(lián)路存在不可避免的隨機丟包,通過FEC,增強傳輸?shù)聂敯粜裕焕媒邮斩朔答佇畔⒕柰龋烙嫯?dāng)前可用帶寬纵朋,避免擁塞;編碼器在當(dāng)前估計的可用帶寬下茄袖,選擇合適的編碼策略操软,達到帶寬利益最大化傳輸∠芟椋”朱玲介紹說。

網(wǎng)易視頻云是怎么解決的藏澳?

朱玲介紹了網(wǎng)易視頻云解決擁塞問題的思路馍迄。在接收端根據(jù)流量監(jiān)控,實時反饋當(dāng)前網(wǎng)絡(luò)聯(lián)路狀況野芒,反饋給發(fā)送端,發(fā)送端根據(jù)反饋的丟包信息狞悲,添加合適的冗余包摇锋,并結(jié)合接收端發(fā)送的帶寬估計信息,估計當(dāng)前的可用帶寬荸恕,并進行視頻編碼控制戚炫。

除了丟包問題,影響直播體驗的另一個常見情況就是延時抖動双肤。所謂抖動,就是每個數(shù)據(jù)包到達對端的時間延時是動態(tài)變化七芭,可能由于路由聯(lián)路的選擇變更狸驳,網(wǎng)絡(luò)擁塞等造成,它的直接后果就是撰糠,會導(dǎo)致對端播放的不流暢。為了解決抖動問題阅酪,網(wǎng)易視頻云在接收和播放中引入了JitterBuffer的策略术辐。

朱玲總結(jié)說施无,實驗以及線上用戶的統(tǒng)計數(shù)據(jù)表明,網(wǎng)易視頻云的互動直播產(chǎn)品完全滿足用戶需求瑞躺,平均延時在網(wǎng)絡(luò)較好情況下卓练,端到端延時控制在200ms左右襟企,在網(wǎng)絡(luò)不穩(wěn)定丟包率在20%以內(nèi)顽悼,網(wǎng)易視頻云依然能提供較為流暢清晰的視頻體驗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市映胁,隨后出現(xiàn)的幾起案子解孙,更是在濱河造成了極大的恐慌,老刑警劉巖弛姜,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件苍在,死亡現(xiàn)場離奇詭異,居然都是意外死亡续誉,警方通過查閱死者的電腦和手機初肉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來井佑,“玉大人躬翁,你說我怎么就攤上這事盯拱。” “怎么了宁舰?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵蛮艰,是天一觀的道長雀彼。 經(jīng)常有香客問我,道長徊哑,這世上最難降的妖魔是什么莺丑? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任梢莽,我火速辦了婚禮,結(jié)果婚禮上炕横,老公的妹妹穿的比我還像新娘葡粒。我一直安慰自己膜钓,他們只是感情好颂斜,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布沃疮。 她就那樣靜靜地躺著司蔬,像睡著了一般姨蝴。 火紅的嫁衣襯著肌膚如雪左医。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天跛十,我揣著相機與錄音芥映,去河邊找鬼屏轰。 笑死憋飞,一個胖子當(dāng)著我的面吹牛榛做,可吹牛的內(nèi)容都是我干的内狸。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼昂灵!你這毒婦竟也來了舞萄?” 一聲冷哼從身側(cè)響起管削,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤含思,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后饲做,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盆均,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡缀踪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年驴娃,在試婚紗的時候發(fā)現(xiàn)自己被綠了唇敞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疆柔。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡旷档,死狀恐怖歇拆,靈堂內(nèi)的尸體忽然破棺而出故觅,到底是詐尸還是另有隱情厂庇,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布输吏,位于F島的核電站权旷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏贯溅。R本人自食惡果不足惜拄氯,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一躲查、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧坤邪,春花似錦熙含、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至黔衡,卻和暖如春蚓聘,著一層夾襖步出監(jiān)牢的瞬間夜牡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工猴娩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留矛双,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像织阅,于是被迫代替她去往敵國和親荔棉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容