網易視頻云朱玲:互動直播場景下的視頻核心技術實踐

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

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

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

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

1、低延時。延時最大不超過500ms,當然越小越好;

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

3,清晰。用客觀標準衡量的話,當視頻編碼后與原始視頻的峰值信噪比。要高于30db,主觀感受清晰。

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

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

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

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

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

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

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

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

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

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

網易視頻云是怎么解決的?

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

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

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

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

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

長按掃碼 閱讀全文