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

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

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

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

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

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

2,流暢。每秒最少十幾幀,24fps~30fps,接近電影、電視的播放速率 ,用戶體驗(yàn)佳;

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

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

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

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

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

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

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

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

首先是平滑發(fā)送。在發(fā)送端維護(hù)一個rtp數(shù)據(jù)包buffer,一個發(fā)送優(yōu)先級隊(duì)列,當(dāng)rtp數(shù)據(jù)包產(chǎn)生后并不是立刻發(fā)送,而是存放到buffer中緩存,并開啟一個發(fā)送定時(shí)器線程,將數(shù)據(jù)包從數(shù)據(jù)buffer中取出,存放在優(yōu)先級隊(duì)列中,進(jìn)行發(fā)送,我們在發(fā)送之前,會進(jìn)行網(wǎng)絡(luò)探測,根據(jù)探測到的可用帶寬,自適應(yīng)的調(diào)節(jié)發(fā)送速率。

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

“為了解決丟包問題,我們的思路是盡力傳輸?shù)幕A(chǔ)上進(jìn)行擁塞控制,盡量避免發(fā)生擁塞丟包,當(dāng)聯(lián)路存在不可避免的隨機(jī)丟包,通過FEC,增強(qiáng)傳輸?shù)聂敯粜?利用接收端反饋信息,估計(jì)當(dāng)前可用帶寬,避免擁塞;編碼器在當(dāng)前估計(jì)的可用帶寬下,選擇合適的編碼策略,達(dá)到帶寬利益最大化傳輸。”朱玲介紹說。

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

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

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

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

極客網(wǎng)企業(yè)會員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2016-12-13
網(wǎng)易視頻云朱玲:互動直播場景下的視頻核心技術(shù)實(shí)踐
12月9日-10日,中國科學(xué)院軟件研究所、中科軟科技聯(lián)合主辦的中國軟件技術(shù)大會在北京開幕,來自國內(nèi)各大互聯(lián)網(wǎng)和IT公司的技術(shù)從業(yè)者聚集于此,共同討論交流前沿技術(shù)和發(fā)展趨勢、分享最佳實(shí)踐和應(yīng)用經(jīng)驗(yàn)。

長按掃碼 閱讀全文