818臺網直播技術解析與最佳化策略

架構師修行手冊發表於2023-12-29

來源:之家技術


1. 引言

在萬物互聯的新時代,數字經濟勢不可擋,“數字化轉型”成為熱詞,其中直播作為數字化經濟發展的重要一環,已然成為當下最熱門的網際網路場景應用之一,同時也是企業傳播資訊、展示產品以及與使用者進行互動的重要渠道之一。而其中的核心技術——推拉流技術,更是直播過程中不可或缺的關鍵環節。直播推拉流技術是指透過網路將實時影片訊號從源端推送到伺服器端,然後再由觀眾端透過網路接收並播放的過程。它廣泛應用於各類直播平臺、線上教育、遠端會議等場景下。但是,直播推拉流過程中常常會遇到一些技術問題,如延遲、卡頓、畫質模糊等,需要針對這些問題進行最佳化。今天的分享,將透過對之家818臺網直播推拉流技術保障的講解,為大家揭秘直播技術的高可用解決方案和最佳化策略。


2. 直播場景介紹

之家818臺網直播是汽車之家與中央電視臺CCTV2,湖南衛視跨界強強聯手,在8 月18日電商營銷黃金檔,聯袂推出全球首場汽車主題晚會——“汽車之家818全球汽車夜”,攜手超強年輕流量,引入王牌工作室,打造了一臺汽車與娛樂並行的跨界大IP,全程電視臺線上直播,各大網線同步進行直播,涵蓋現場互動性較強的線上發放紅包雨,實時抽獎開獎,線上競技押寶競猜等場景。所以不僅對直播的實時性,低延遲要求比較高,而且對系統的高可用,穩定性也是硬性要求。接下來將從可用、高可用、效能提升三個維度介紹整個直播的保障工作。


3. 架構設計

818臺網直播技術解析與最佳化策略

818直播保障高可用系統架構圖

3.1

可用性以及穩定性保障

直播推拉流技術需要具備高可靠性,對於直播來說,每一幀每一秒的音影片資料都非常重要,任何一次丟包或者傳輸錯誤都可能導致畫面卡頓或者斷流。因此,推拉流技術需要具備強大的糾錯能力和容錯機制,確保音影片資料的完整性和穩定性,其次還需要保障直播的流暢度,降低直播的卡頓率,提升使用者體驗,針對提升直播的效能最佳化我們主要舉措有以下幾點:

1. 網路最佳化。直播前期我們透過第三方CDN質量檢測系統,針對全國範圍的省市區CDN節點進行為期一個月的質量撥測,透過檢測評分篩選出質量比較差的CDN節點,進行針對性點對點的最佳化處理,透過最佳化CDN線路,提升CDN的本地觸達率來提升直播的秒開,降低直播卡頓率。

2. 緩衝機制。重寫開源伺服器srs的GOP cache邏輯,增強關鍵幀快取技術。

3. 直播預熱。開播當日開啟全國範圍內撥測,進行CDN邊緣節點預熱,開啟直播流不同清晰度直播流的主動轉碼,保證全國範圍內使用者拉流的可用性和收幀載入成功率,降低秒開耗時,提升秒開速度。

4. CDN加速。最佳化推流CDN節點的穩定性,縮短推流鏈路,減少耗時轉發,避免推流地址域名解析因DNS解析異常導致的最優線路MISS,確保北京地區一定推流到華北地區節點,另外推流開始後,對推流節點進行穩定性監控,重點監控節點丟包率,上行幀率波動。

818臺網直播技術解析與最佳化策略
推流節點最佳化前後影片幀率位元速率比

3.2

容災高可用保障

直播推拉流技術還需要具備高擴充套件性。隨著直播使用者數量的增加,網路負載也會相應增加,這就要求推拉流技術能夠靈活地調整頻寬、最佳化網路傳輸等,以應對龐大的使用者需求。所以在直播過程中,伴隨著使用者群體的增加,可能會面臨各種故障,比如直播源流中斷,推流伺服器當機,CDN線路斷開,推流程式崩潰假死等等問題,所以針對各種場景的異常故障,經過我們數輪故障推演對抗,制定了詳細的對抗方案和指令碼,使得整個系統具備故障自愈能力。

1. 同時接入四路等效影片輸入源,保障源流拉流高可用,隨時可以進行無損切換。

2. 同步在五個交叉IDC等效部署推流服務,保障推流伺服器的高可用。

3. 接入三家CDN直播服務商,多路同推,動態排程流量,確保直播服務商的高可用。

在容災架構中,無論是切換輸入源,亦或是切換了推流服務IDC機房,或者是更換了直播服務商,最終都會造成直播流的閃斷,那麼如何把直播流閃斷的時長降低到3s內,甚至達到使用者完全無感,這對我們是個挑戰難題。當直播流斷開再恢復的時刻,我們發現此時直播流的時間戳沒有連續,存在時間戳跳變問題,主要指標是DTS回退,觸發Non-monotonous DTS in output stream,DTS是一種解碼時間戳,這個時間戳的錯誤可能導致解碼失敗,關鍵幀或參考幀丟失,從而出現播放破圖或黑屏(有聲音無畫面)。同時時間戳錯誤,還可能導致播放器播放停滯。發現該問題之後,我們與CDN廠商一同解決了時間戳跳變問題,同時在內網直播服務端,做了轉推前置的跳變時間戳處理,對齊ffmpeg concat演算法,最終成功做到服務商之前切換使用者無感知,直播流斷開服務降級使用者弱感知,3s內恢復的效果。

3.3

故障感知

直播場景軟體系統平臺監控技術是保障直播系統可靠執行的關鍵要素。透過合理配置監控系統,結合日誌記錄與分析、效能指標監測、故障診斷與恢復以及安全監控等關鍵技術,可以提高直播系統的穩定性和安全性,為使用者提供良好的直播體驗。

         818臺網直播場景平臺監控基於使用者端和主播端兩個層面進行管控。主播端監控主要關注源流的質量情況,包括連線質量、幀率位元速率、延遲等指標;使用者端監控則主要關注使用者的直播狀態、音影片位元速率幀率的穩定性、頻寬利用率、秒開時長等指標。透過實時採集監測資料,並將其儲存和分析,可以實現對整個系統的全面監控。透過全鏈路的監控做到故障秒級感知,為直播線路擇優,提供資料的支撐與決策依據,可以快速定位問題源頭和異常行為,降低異常故障對直播產生的負面影響,縮短系統修復時間。

818臺網直播技術解析與最佳化策略
818臺網直播監控預警平臺

3.4

安全機制

對直播系統進行安全監控,包括實時檢測和識別惡意攻擊,防範未知漏洞的利用,並實時更新安全策略和規則以保護直播推流地址的安全,防止洩露。直播推流安全問題主要包括以下方面:

1. 盜鏈:駭客透過獲取推流地址或金鑰等手段,盜用直播內容,導致未授權的內容傳播。

2. 丟包和延遲攻擊:駭客利用網路延遲或丟包等問題,對直播過程進行干擾,造成直播質量下降。

         3. 內容篡改:駭客對推流的內容進行篡改或替換,破壞正常的直播體驗,甚至傳播虛假資訊。

         4. DDoS攻擊:駭客透過大規模的請求洪水攻擊直播伺服器,導致服務不可用或直播中斷。

針對面對的直播安全威脅,為了保障直播推流的安全行,我們制定了安全防護方法,主要採取了以下手段進行防護:

         1. 推流鑑權:使用金鑰或Token等方式對推流地址進行鑑權,確保只有經過授權的裝置能夠進行推流操作。

         2. 數字簽名:在推流過程中使用數字簽名對資料進行加密和認證,防止內容被篡改或偽造。

         3. 安全傳輸:使用HTTPS協議進行推流傳輸,確保資料在傳輸過程中的機密性和完整性。

         4. 防護裝置:在直播伺服器端使用防火牆、入侵檢測系統(IDS)等裝置,監測和攔截惡意請求和攻擊。

         5. CDN加速:透過使用CDN(內容分發網路)技術,將直播內容快取到離使用者最近的節點,減少網路延遲和丟包率,提高直播質量。

         6. 流量限制:設定並監控推流頻寬和QPS(每秒查詢率),避免因大量非法請求導致伺服器資源耗盡。

         7. 安全更新:直播開播前每隔5分鐘更新一次推流地址,強制作廢舊推流地址。

         8. 管控推流伺服器IP,新增推流IP白名單,僅指定伺服器可推流成功,防止直播推流過程中被惡意搶斷推流。


4. 總結

直播推拉流技術作為直播的核心技術之一,具備低延遲、高可靠性和高擴充套件性的特點,對於企業來說具有重要意義。未來,隨著直播行業的進一步發展,我相信直播推拉流技術將會變得更加成熟和智慧化,為企業員工帶來更高效、便捷的工作體驗。直播推拉流技術是實現實時影片傳輸的核心環節,對於保證直播質量和使用者體驗至關重要。本文透過對技術原理、常見問題和最佳化策略的分析,希望能夠幫助企業員工更好地理解直播。我們也會持續探索和最佳化,不斷提升系統的穩定性和可靠性,爭取在競爭激烈的市場中脫穎而出,為使用者提供良好的直播體驗。

來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70027824/viewspace-3002051/,如需轉載,請註明出處,否則將追究法律責任。

相關文章