天天看點

2020中國系統架構師大會活動回顧:ZEGO實時音視訊服務架構實踐

10月24日,即構科技背景架構負責人&進階技術專家祝永堅(jack),受邀參加2020中國系統架構師大會,在音視訊架構與算法專場進行了主題為《ZEGO實時音視訊服務架構實踐》的技術分享。

以下為演講内容的節選:

作為一家專業的音視訊雲服務商,即構服務了泛娛樂、線上教育、金融、産業網際網路、IoT等行業的多家頭部公司,例如映客、花椒、微網誌、好未來等。今年上半年受疫情影響,即構所服務的多家教育、泛娛樂客戶都出現了流量暴增的現象。而即構提供的穩定背景服務,保障了客戶線上業務0故障營運,這離不開我們成熟穩定、可用性高、能自動擴容的流媒體服務架構。

下面我從ZEGO流媒體服務簡介、流媒體服務架構、排程邏輯設計和營運監控四部分進行分享:

一、ZEGO流媒體服務介紹

以這張圖為例,我們來看ZEGO流媒體服務的全貌:

2020中國系統架構師大會活動回顧:ZEGO實時音視訊服務架構實踐

假設圖中有三位主播A,B,C和觀衆,主播A,B,C要進行連麥互動,他們分别通過浏覽器、原生App和微信/QQ小程式來推流。由于主播使用了不同的終端形式來進行推流,那麼底層使用的音視訊協定也是不同的,分别對應着WebRTC,AVERTP(ZEGO的私有音視訊協定),RTMP。主播之間連麥互動需要互相拉流,為了獲得良好的互動效果,需要很低的端到端拉流延遲(<400ms)。是以,主播們可以到即構全球實時網絡來進行拉流,支援Web終端,和原生App拉流,國内的實際環境端到端延遲可以做到150-400ms。

而觀衆,因為量比較大,需要考慮成本,同時他不需要互動,可以接受較高的延遲。是以可以考慮從即構全球實時網絡轉推一路RTMP協定的碼流到第三方CDN,觀衆再從CDN去拉流。

當然,如果觀衆也要很低的延遲,那麼也可以從我們的實時網絡拉流。此外,一些原來使用rtmp的客戶,還可以通過第三方應用通過OBS來推流,很輕易的遷移到即構全球實時網絡,使用者就可以實作在全球區域範圍内進行低延遲的音視訊互動。

介紹完主要流媒體服務的全流程後,我們來看流媒體服務包含的具體職責:

排程:在使用者推拉流前,需要發起排程請求,獲得一個資源後才能夠發起實際的碼流推拉。使用者體驗的好壞,跟排程政策有很大關系。

實際推拉流:我們适配了RTMP,WebRTC,AVERTP等多種協定的推拉流标準,提供了更優的流控等算法。

轉推CDN:即構全球實時網絡和第三方的CDN需要進行協作來滿足客戶的多樣化場景需求。

轉碼:RTMP使用的AAC音頻編碼,WebRTC使用的Opus音頻編碼,這兩種格式互通,需要對音頻進行轉碼。

轉協定:我們RTMP和WebRTC是以網關的形式存在的,中間的網絡傳輸都是以我們的AVERTP協定來進行。

目前我們支援H264,H265,VP8 3種格式的視訊編碼轉碼;AAC, Opus,SILK 3種格式的音頻轉碼;RTMP、WebRTC、AVERTP3種協定格式的轉協定。

混流:當出現多個主播連麥互動時,觀衆如果分别去拉主播的流,對帶寬成本和使用者的裝置都有很高的要求。我們會讓伺服器混合成一條流,觀衆隻需要拉混合後的流即可。

流管理:推拉流鑒權,禁推管理,我們提供了業務營運必需的多種流管理功能。

即構實時音視訊服務的優勢展現在4個方面:

第一,多雲商架構設計

我們設計之初就确定了支援多雲商的架構設計。不同雲商有着不同的優勢,他的資料中心和網絡資源天然的存在着差異性,a雲商在印度南部覆寫品質好,b雲商在印度北部覆寫品質好。那麼我們就都用起來,讓a雲商覆寫印度南部,b雲商覆寫印度北部,進而讓整體獲得更好的接入品質。

第二,高可用設計保障品質

我們架構設計上加進了許多高可用的方案,來保障穩定的服務品質,後面會展開。

第三,弱網下抗丢包能力強

我們自研的音視訊引擎,在弱網下的表現更優異,能實作“上/下行70%丢包下,保持10-15幀視訊流暢通話;上/下行80%丢包下,保持音頻流暢通話”。

第四,低延遲大規模分發

利用ZEGO自研引擎,我們做了低延遲大規模分發的流媒體服務架構設計,能極大的提高背景并發能力。

(未完待續……)

鑒于分享内容較豐富,更多ZEGO實時音視訊服務架構實踐中的“流媒體服務架構設計、排程邏輯設計以及營運監控”等内容,可以點選這裡擷取演講資料包,包含演講文字稿、演講PPT以及即構全球主要國家的端到端延遲實測資料。

繼續閱讀