網心科技李浩:如何快速搭建超火爆的直播系統

在國內錯綜複雜的網絡情況下,如何構建一個高併發、穩定、低延時的直播系統?在12月21日,網心科技直播技術負責人李浩做客CSDN網絡公開課,爲數百名技術人員現場解答關於直播系統搭建方面的一系列問題。

李浩總結,要搭建一個能夠爲用戶穩定提供優秀觀看體驗的直播系統,一定要注意三大關鍵指標,即卡頓、延時和首屏打開速度。而針對目前如火如荼的直播市場,李浩認爲,無論內容和運營手段如何花樣翻新,如果沒有核心技術作爲保障,不能保證這三大指標的合格,直播平臺依然很難取得市場競爭的勝利。

以下爲李浩的課程內容整理:

一.不同直播業態對應不同的技術要求

直播平臺細分爲各種不同的業態。目前主流的幾種業態,分別是秀場類、遊戲類、生活類這三種直播。此外事件類、互動類、教育類、監控類直播這幾種業態也較爲常見。

儘管這些業態裏基本上都有10億級獨角獸公司產生,但每一種業態對系統的核心要求卻是完全不一樣的:

秀場和生活類直播:主播和觀衆網絡環境相對更復雜,因此核心體驗是流暢度,可以犧牲碼率來提高流暢度,自適應碼率、幀率等都是常見的優化手段;

遊戲類直播:爲了保證體驗效果,要求的是高清晰度和高流暢度,端到端延時可以做出一些讓步來換取壓縮率更高的編碼參數,容納更高幀率和清晰度的內容;

事件類直播:核心要求是穩定性,包括高可靠上行;

互動類直播:核心要求則是端到端的延時,爲此網絡波動時丟棄視頻幀等是可以接受的。

因此需要注意不同的業務形態,後端所用的技術是完全不一樣的。如互動類的直播的超低延時方案,4K和VR這種對用戶帶寬滿載利用率的直播場景,通用CDN技術可能無法做到覆蓋。

儘管如此,李浩還是認爲現在搭建一個直播系統要遠比之前來的容易,因爲大量工作已經被CDN和終端服務商幫忙解決了,需要自己動手的地方少了很多。

二.直播系統的核心業務需求

那麼搭建直播系統時,需要重點關注的核心功能都有哪些?李浩對此一一進行了解析。

A.採集和播放

目前視頻的採集已經相對容易許多,因爲手機功能相對完整,不像PC時代需要面對不同的攝像頭驅動,所以需要核心處理的技術點是網絡適配。技術人員需要根據自身的網絡條件去調整編碼參數,以及多協議的拉流、軟硬件的解碼、多分辨率追幀等基礎需求。如果在此基礎之上,還能解決好對緩存的管理、數據同步等高端需求的話,那直播的整體播放體驗就比較流暢了。

B.分發和媒體處理

分發和媒體處理的工作,現在除了“特別特別大”的平臺,一般都直接由CDN服務商來解決了。因爲目前CDN服務已比較完善,跟直播匹配的一些功能,如上下線通知、協議轉換、弱網傳輸,以及像轉碼、水印、增益、截圖、錄製這樣的功能都已提供。

C.功能系統

需要直播平臺自身核心打造的,是功能系統。除去賬戶系統,還有如人氣、道具、打賞、支付、抽獎等功能系統都是必備的。特別是彈幕功能,是對直播平臺最核心的技術挑戰。主要是彈幕的發送量會很大,直播在線人數動輒幾十萬,彈幕的發送頻率又很高,1、2秒就會發一條消息,巨大的廣播量對系統壓力很大。所以一般直播平臺都會採取分區的方式來加以解決,而如何分區,又在什麼情況下合併分區,以維持合適的人氣,這裏面還是有很多邏輯上的問題是要去解決的。

D.運營系統

運營系統也非常核心。視頻的黃反審查,聊天內容的審覈,還有一鍵斷播、數據統計、質量監控這些都必不可少,因爲一要面對內容監管審查的壓力,其次是要能監測到全國不同區域的質量效果。

不過李浩指出,即便是把上述功能都實現了,也只能說搭建出一個基本可以跑的一個直播產品而已,需要提升的地方還很多。

三.直播的關鍵性技術知識

接下來,李浩對直播的一些關鍵性知識進行了詳細的解釋:

A.視頻幀

視頻幀其實就是一個一個的視頻單元,視頻單元分成三種,分別叫I、P、B幀。I幀可以簡單的理解爲就是一張圖片,體積也會比較大,B幀和P幀它是一個參考幀。對一個直播流來說,最核心的幀是I幀,由I幀引申出來的就叫GOP。通常在直播上看到的延時,其實是內部直播流緩存延時,叫GOP cache。對於一個CDN系統來說,傳輸延時只是延時的一小部分,還有一部分是產生在用戶流裏面的GOP cache。所以直播平臺如果要降低延時,首先建議調一下上行流的編碼參數,調低I幀間隔。

1240

B.碼率

碼率也分三種,CBR、VBR、ABR。CBR是固定碼率,可用於保證網絡專線帶寬是可控的場景。VBR是可變碼率,它不好的地方在於,畫面變化劇烈,它的碼率跳變會特別大。所以在直播的實際應用中,ABR用的最多,即在質量和碼率上做一個均分,控制一個平均值。

C.編碼、封裝、傳輸

封裝的功能相當於一個桶,它可以把不同編碼格式的音視頻裝在一起,好的封裝格式是能兼容很多種的音視頻的編碼格式的。編碼的功能是把原始數據壓縮的更小,像視頻編碼這種原始信息量大的,目前的編碼方式已經把信息冗餘度做的很低,如果出現丟幀,會導致視頻的花屏。

李浩提醒直播技術人員,一定要了解這些基礎知識,否則你很難理解直播的延遲產生在哪,以及爲什麼會發生卡頓。

四.直播的系統架構

1240

對一個直播平臺來說,主播就相當於是一個數據源,各地不同的觀衆相當於是訂閱者,其實就是生產者和訂閱者模型。怎麼樣把這個生產者生產的信息,比較高效的送到訂閱者手上,其實就是一個應用層的組播結構,需要做很多應用層層面的一些考量,比如中轉跳數、網絡距離、中轉帶寬成本和匯聚效果等。

推流模式就是主播直接把流推到CDN節點,CDN節點經過自己的網頁加速,分發到真正觀看的用戶。直播所有的功能,像轉碼水印,轉存截圖、轉點播,所有的這種功能,包括數據統計對外提供一些API,都會在CDN裏面做。

一家直播廠商可能會選用多家CDN,或者是有自建的CDN。每個CDN最核心的一點,是怎麼在國內這種錯綜複雜這個網絡環境內,去組一張分發比較快速、容災性能比較強,然後相對節省成本的一張虛擬網。

所以在整個CDN裏面,最核心的就是傳輸組網,其次是在於功能系統的健壯。一個CDN、一個直播系統做的好壞,成敗其實一部分在於傳輸的順暢,另外一部分在於你是否穩健。

五.直播的三大核心指標

雖然直播對技術的要求錯綜複雜,但李浩還是表示,直播的關鍵的指標其實只有三個:卡頓、延時、首屏打開速度。做好這三大關鍵指標,直播的用戶體驗就有了保證。

A.卡頓

卡頓的解決與延時則在一定程度上是矛盾的。卡頓產生的原因有三種,第一是主播上行卡頓,所有的觀衆都會卡;第二是CDN內部網絡帶來的卡頓,例如中轉網絡產生了波動,節點負載沒控制好,或者是一些組網策略出問題,第三就是被調度和終端網絡問題,好比DSN錯配、或者最後一跳網絡抖動。要有監控手動能發現主要問題點針對性處理。

B.延時

除了前面說的視頻GOP緩存,其次延遲主要來自累積,除了做跳幀等邏輯以外,還可以通過改變傳輸協議的方法來提高,對於延時控制要求高的直播業務,如互動類直播,根本不會採用TCP這樣的協議來做傳輸,而會選擇UDP協議。因爲對於這種直播來說,視頻的所有數據都可以放棄,但要優先保證音頻的即時性。

C.首屏打開速度

首屏打開則考驗的是直播CDN的組網方式、網絡覆蓋率和傳輸協議的優化程度。李浩特別提醒說,今年對首屏打開速度的要求越來越高,秒開已經是去年的指標要求,今年要細化到幾百毫秒,做不到這個級別就沒有競爭優勢。在這一點上,選擇一個靠譜的CDN就尤爲重要了。

李浩簡介:

李浩,網心科技視頻直播技術負責人,2015年加入網心科技,負責星域CDN直播平臺的構建,並獲得多項創新專利。曾任騰訊高級工程師,負責騰訊雲的遊戲和移動的技術解決方案研發,期間主導過騰訊大數據多維實時分析、信鴿移動推送、騰訊雲移動加速等項目。

利益相關:同事的一些觀點

原文在此:http://geek.csdn.net/news/detail/131071?from=groupmessage&isappinstalled=0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章