在國內錯綜復雜的網絡情況下, 如何構建一個高并發、穩定、低延時的直播系統?在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幀間隔 。

文章插圖
B.碼率
碼率也分三種, CBR、VBR、ABR 。 CBR是固定碼率, 可用于保證網絡專線帶寬是可控的場景 。 VBR是可變碼率, 它不好的地方在于, 畫面變化劇烈, 它的碼率跳變會特別大 。 所以在直播的實際應用中, ABR用的最多, 即在質量和碼率上做一個均分, 控制一個平均值 。
C.編碼、封裝、傳輸
封裝的功能相當于一個桶, 它可以把不同編碼格式的音視頻裝在一起, 好的封裝格式是能兼容很多種的音視頻的編碼格式的 。 編碼的功能是把原始數據壓縮的更小, 像視頻編碼這種原始信息量大的, 目前的編碼方式已經把信息冗余度做的很低, 如果出現丟幀, 會導致視頻的花屏 。
李浩提醒直播技術人員, 一定要了解這些基礎知識, 否則你很難理解直播的延遲產生在哪, 以及為什么會發生卡頓 。
四.直播的系統架構

文章插圖
對一個直播平臺來說, 主播就相當于是一個數據源, 各地不同的觀眾相當于是訂閱者, 其實就是生產者和訂閱者模型 。 怎么樣把這個生產者生產的信息, 比較高效的送到訂閱者手上, 其實就是一個應用層的組播結構, 需要做很多應用層層面的一些考量, 比如中轉跳數、網絡距離、中轉帶寬成本和匯聚效果等 。
推流模式就是主播直接把流推到CDN節點, CDN節點經過自己的網頁加速, 分發到真正觀看的用戶 。 直播所有的功能, 像轉碼水印, 轉存截圖、轉點播, 所有的這種功能, 包括數據統計對外提供一些API, 都會在CDN里面做 。
一家直播廠商可能會選用多家CDN, 或者是有自建的CDN 。 每個CDN最核心的一點, 是怎么在國內這種錯綜復雜這個網絡環境內, 去組一張分發比較快速、容災性能比較強, 然后相對節省成本的一張虛擬網 。
所以在整個CDN里面, 最核心的就是傳輸組網, 其次是在于功能系統的健壯 。 一個CDN、一個直播系統做的好壞, 成敗其實一部分在于傳輸的順暢, 另外一部分在于你是否穩健 。
五.直播的三大核心指標
雖然直播對技術的要求錯綜復雜, 但李浩還是表示, 直播的關鍵的指標其實只有三個:卡頓、延時、首屏打開速度 。 做好這三大關鍵指標, 直播的用戶體驗就有了保證 。
A.卡頓
卡頓的解決與延時則在一定程度上是矛盾的 。 卡頓產生的原因有三種, 第一是主播上行卡頓, 所有的觀眾都會卡;第二是CDN內部網絡帶來的卡頓, 例如中轉網絡產生了波動, 節點負載沒控制好, 或者是一些組網策略出問題, 第三就是被調度和終端網絡問題, 好比DSN錯配、或者最后一跳網絡抖動 。 要有監控手動能發現主要問題點針對性處理 。
B.延時
除了前面說的視頻GOP緩存, 其次延遲主要來自累積, 除了做跳幀等邏輯以外, 還可以通過改變傳輸協議的方法來提高, 對于延時控制要求高的直播業務, 如互動類直播, 根本不會采用TCP這樣的協議來做傳輸, 而會選擇UDP協議 。 因為對于這種直播來說, 視頻的所有數據都可以放棄, 但要優先保證音頻的即時性 。
C.首屏打開速度
首屏打開則考驗的是直播CDN的組網方式、網絡覆蓋率和傳輸協議的優化程度 。 李浩特別提醒說, 今年對首屏打開速度的要求越來越高, 秒開已經是去年的指標要求, 今年要細化到幾百毫秒, 做不到這個級別就沒有競爭優勢 。 在這一點上, 選擇一個靠譜的CDN就尤為重要了 。
- 通信人必知的天線知識都在此!
- 5G殺到!射頻前端需要怎樣的工藝和技術?
- Qualcomm Technologies發布首個從調制解調器到天線的綜合性方案
- 孜然蒜香蜜汁烤翅的做法
- 素炒三絲的做法
- 廣州白云豬手的做法
- 和味牛雜蘿卜的做法
- 黃桂柿子餅的做法
- 今日豬價行情浙江溫嶺,浙江溫嶺爆炸
- 今日豬價還會不會漲,一頭豬的價格
