ZEGO自研RTC+直播系統架構,如何支撐一場高質量直播
近年來得益於網路基礎設施的進步,實時音視訊(Real-Time Communication,以下簡稱 RTC)和直播(採用 CDN 進行內容分發)在各行業迅速落地,在疫情的催化下更是推動傳統的教育、會議等場景往線上轉移。
RTC 通常採用私有 UDP 協議,端到端延時低同時弱網適應能力強,不過成本高昂。直播 CDN一般基於標準的 TCP 協議,採用多級分發、時延高、抗弱網能力相對較差,但優在在成本低廉。雖然終端網路能力有了長足的進步,但是使用者對直播質量的要求也越來越高,支撐一場高質量的直播並不簡單。
那麼,今天我們來聊一聊 ZEGO 如何優化弱網觀看體驗,解決內容分發異常等問題,支撐起一場高質量直播。
直播質量的攔路虎
我們先來看一下常見的直播系統架構(如下圖),通常是主播通過 TCP 協議推流到 CDN,然後經過 CDN 的流媒體處理系統(比如轉碼,合流,多位元速率轉換等),再經過 CDN 多級分發最後到觀眾端。
圖1:傳統直播系統架構圖
顯然如果主播資料來源異常或者到 CDN 推流點這段鏈路質量異常,那麼整個直播效果都將大打折扣。根據我們線上實際觀察,影響這段鏈路質量的主要因素有:
- 主播側的源資料異常
- 主播側網路抖動
- 公網鏈路抖動
- CDN節點異常(網路抖動或負載過高)
- DNS解析不準確導致主播獲取的推流點並不合適主播網路
那麼,為什麼會出現上述問題呢,簡單總結為以下三點:
主播系統裝置五花八門,Android 、iOS、Windows 等系統的各個版本齊上陣,加上各個手機廠商的定製版系統,相容適配各類裝置是令開發者非常頭痛的問題,一旦有相容性問題則通常會導致主播側推流源資料異常甚至無法推流;
主播側網路和公網鏈路大概率會抖動或間歇性異常,本地域名解析線路識別也有一定誤差,再加上域名劫持等,這類問題通常是開發者或者 PaaS 廠商無法預測和掌控的,我們能做的只有規避或適應這種變化;
CDN 節點故障無法避免,同時廠商也無法保障到每一個主播的接入質量,一旦個別使用者出現接入質量問題時,排查定位需要拉起多方人員:使用者、開發者、CDN 技術人員,如果用了第三方音視訊 PaaS 廠商,則還會需要廠商人員參與,整個流程下來效率低,使用者滿意度也低。
ZEGO 自研RTC+系統,保障主播推流持續高質量
ZEGO 並沒有沿用傳統的直播系統架構,而是採用完全自研的 RTC+ 系統。RTC+ 套系統不僅承載 RTC 流量,也能夠無縫接入傳統直播流量。ZEGO 優化後的系統架構如下圖:
圖2:ZEGO RTC+ 直播系統架構
依託這套架構,ZEGO 對上述痛點進行各個擊破,下面將為您介紹 ZEGO 具體做了什麼。
1、音視訊演算法&傳輸協議優化主播推流質量
主播推流到 ZEGO RTC 推流節點,節點採用完全自研的音視訊引擎,自研引擎擁有業界領先的 3A 演算法,具體優勢有:
- 優異的迴音消除演算法在多講場景下擁有比競品更優異的雙工體驗;
- 結合心理學模型的噪音抑制策略,在不損失音質的情況下提高 20dB+ 信噪比;
- 自動音量調節確保在嘈雜環境下使用者的音訊體驗。
同時 ZEGO 摒棄了傳統的 TCP 協議,自研的 AVERTP 音視訊協議基於私有 UDP 協議,其抗丟包能力更強;在弱網環境中面對網路抖動及丟包時通過抖動緩衝、前向糾錯和丟幀補償,極大提升通話質量,保證 80% 網路丟包下音訊可正常連通,70% 網路丟包下視訊可正常連通。
同時 ZEGO 流媒體節點支援按流級別進行質量監控,當 CDN 節點或者公網鏈路異常時,能夠自動切換轉推節點,無需主播介入。
2、全球智慧排程優化主播第一公里接入
主播推流前 ZEGO SDK 會請求排程服務,排程服務實時解析主播地理位置和運營商資訊,匹配排程覆蓋策略,過濾出負載最優節點列表後返回給主播端。不止於此,針對重點主播,ZEGO 還支援為其配置個性化的排程策略,實現流量的精準調控。網路是時刻變化的,多年來 ZEGO 依託海量音視訊資料分析平臺 Ocean 並結合 SDK 的網路探測能力,能夠實時感知區域網路變化並動態調整節點覆蓋策略,保障主播最佳接入質量。
當前 ZEGO 在全球 150+ 地區部署有流媒體節點,覆蓋了全球各大主流的運營商和人口密集區。與此同時 ZEGO 還同各大雲廠商及主要的傳統 IDC 廠商保持緊密合作,確保能夠及時上線優質機房。
3、Navigator 智慧解析優化轉推CDN鏈路
為了解決多方溝通效率低下和 Local DNS 結果不可控的問題,ZEGO 引入了智慧 CDN 域名解析系統 —— Nagivator,系統架構如下:
圖3:Navigator 智慧化解析架構圖
Navigator 相比較於傳統 DNS 有如下優勢:
- 解析結果可自定義,支援按探測質量設定質量梯度返回,支援優先或禁用節點,確保在異常時能夠快速調整;
- 解析策略修改秒級生效,無需等待 DNS 擴散;
- 杜絕了本地域名劫持、運營商線路識別異常等問題。
通過上述的各類優化,整體直播轉推異常率從百分之一下降到萬分之五,極大的提升了推流質量。
SDK 動態感知為觀眾帶來流暢觀看體驗
觀眾端網路情況相較於主播端更加複雜,整體網路質量相對較差,ZEGO 主要從三個方面優化使用者體驗。
1、引擎動態感知&自動切換
為了適應客戶端網路,ZEGO 音視訊引擎實時計算拉流質量,可根據質量情況動態切換拉流幀率及位元速率,並在必要情況下切換拉流節點或者傳輸協議(支援 TCP、QUIC 及 ZEGO 私有 AVERTP 協議),無需開發者呼叫介面。
當切換到 ZEGO 私有 AVERTP 協議時,拉流使用者可享受到媲美 RTC 的接入質量。對於長距離或者跨國場景的流量回源,ZEGO 構建了 Massive Serial Data Network(海量有序資料網路,簡稱 MSDN ),保障流量的可靠傳輸。
2、雲控系統精準把控調節範圍
通過雲控系統,客戶可根據地區調整預設拉流協議及切換策略,在為使用者提供更為流暢的觀看體驗的同時實現精準的成本控制(雲控系統能力遠不止於此,限於篇幅,此處僅提及部分功能,後續將有專題與您分享 ZEGO 雲控系統及其能力)。
3、SDK 極致的相容能力和機型適配
在機型適配方面,ZEGO SDK 團隊經過多年打磨,目前完美適配 15000+ 終端裝置及外設,相容 25 種平臺,讓使用者在直播或觀看直播時應用不假死不崩潰。
以上就是關於 ZEGO 即構科技如何支撐一場高質量直播的內容分享。
ZEGO 在音視訊行業深耕多年,通過自研音視訊引擎,結合智慧排程系統、Navigator 解析系統、雲控系統等業務系統實現了從主播資料採集、推流、內容分發、觀眾播放的全鏈路質量優化。後續我們將繼續打磨系統細節,提升系統可靠性和服務質量。
如果您對上述內容感興趣想要深入瞭解可到 ZEGO官網 體驗,我們也將在後續的文章中同大家分享更多 ZEGO 後臺技術及解決方案!