您的位置 首页 kreess

阿裡雲視頻雲直播技術架構,快速搭建您的專屬直播系統

導讀:目前,不同的直播業務場景的直播需求越來越多,不同的直播需求對應著不同的技術側重點。本篇演講將通過介紹阿裡雲的直播技術架構,從客戶的角度講解如何集成阿裡雲的直播產品,描

導讀:目前,不同的直播業務場景的直播需求越來越多,不同的直播需求對應著不同的技術側重點。本篇演講將通過介紹阿裡雲的直播技術架構,從客戶的角度講解如何集成阿裡雲的直播產品,描繪在阿裡雲視頻雲直播系統內進行快速的場景搭建效果,展示其直播系統的技術特點。

作者:

《快速搭建不同場景的直播系統》 阿裡雲智能技術專傢 熊金水

直播場景需求的多樣性

直播的歷史悠久,出現過各種各樣的直播業務場景,目前比較火爆的業務場景主要有三個:

第一個場景,直播帶貨。直播帶貨是在疫情期間出現的一個風口,大傢在各種各樣的直播平臺上可以看到很多流量明星出來帶貨,成交金額非常的驚人。

直播帶貨的技術挑戰除瞭不卡頓、不掉線和高並發以外,還出現瞭低延時的要求。低延時是從主播看到觀眾的文字留言,到觀眾看到主播的視頻回復。如果這個過程非常長的話,觀眾可能會覺得自己被冷落瞭,從而降低瞭購買欲望。

第二個場景是主播 PK的場景,主播 PK 的場景是主播與主播之間連麥,這是一個比較典型的 RTC 的場景,要求延時在200毫秒左右,對編碼器和傳輸算法的要求是非常高的。

第三個場景是多人互動的場景。在在線遊戲、在線教育等場景,有著非常廣泛的應用。這個場景的主要挑戰在於通過雲端的合流做特效玩法。

當然,不同的直播業務場景也有通用的技術挑戰。

比如說主播和觀眾他們都處於不同的網絡下。甚至是同一個人,他在不同的時間,他的網絡環境也是不一樣的。這個對網絡自適應的要求非常高,另外主播和觀眾使用的手機的能力也是不一樣的,這需要做大量的適配工作。

阿裡雲直播技術架構

阿裡雲的技術架構包括三個方面。

第一個方面是主播端。主播端包括 RACE 前處理、窄帶高清編碼以及傳輸算法采集、采集的機型適配工作。特別是國內的手機廠商做瞭大量的安卓機型定制,導致系統碎片化特別嚴重。

第二個是雲端。雲端包括 CDN 的轉發網絡、雲上窄帶高清轉碼、合流服務以及智能審核等服務功能。雲端的 CDN 轉發網絡是基於阿裡雲全球2800多個 CDN 的佈點,從成本和質量的兩個角度權衡,選擇合適的轉發網絡。

雲上的窄帶高清轉碼,除瞭端上使用的策略以外,雲上還有一個更大的自由度,那就是如何使用特定的硬件做低成本的異構解決方案。雲上的合流服務主要是做特效玩法、插播廣告、加水印等功能。

最後像智能審核、視頻 DNA、水印、錄制、時移等功能,也是阿裡雲視頻雲雲上的基礎能力。

觀眾端則主要包括兩種播放器。一種是常規的普通播放器,這種播放器是大傢通用的 rtmp ,flv、 hls 這些協議,通常它們的延時會在3秒以上。第二種是阿裡雲視頻雲特有的低延時播放器( RTS ),可以在不損失卡頓率的情況下做到一秒左右的延時。

直播連麥場景

接下來介紹連麥場景,這個場景是主播端與連麥粉絲之間的通信,主要包括兩個方面。第一個方面是基於 UDP 的傳輸協議。第二個方面是SFU與合流服務。

UDP 的傳輸協議。核心在於端雲協同一體的網絡自適應算法。網絡自適應算法包括帶寬估計算法。帶寬估計算法是整個網絡自適應的起點與核心。除瞭目前行業通用的解決方案,阿裡雲還針對性的做瞭大量的優化。

其次是帶寬分配策略。在帶寬估計的基礎上,客戶端以及雲端都需要做帶寬分配。在客戶端編碼端,除瞭編碼還有冗餘傳輸,如 FEC、Nack 等都需要在保證畫質清晰的情況下,不能因為 FEC、Nack 分配到的帶寬太少,而導致卡頓。另外 FEC、Nack 適用不同的網絡場景,也需要根據不同的網絡場景使用不同的分配比例。

當然,編碼器 FEC、Nack 這些模塊在分得瞭自己的碼率以後,如何提高碼率的利用率,也是各個模塊需要充分考慮的。上面的自適應算法都是在給定網絡條件下做的自適應。為瞭提高網絡環境本身的質量,阿裡雲有具有得天獨厚的全球佈點的優勢以及就近接入的能力。

第二個是 SFU 與合流服務。直播不同於 RTC 的場景。不僅需要全球覆蓋的 SFU 的節點,它還需要高性能,具有豐富玩法的合流節點,以及端合流,雲合流靈活可配置。

端合流需要考慮的是不同端具有的不同能力,包括計算能力和上行的網絡能力。

雲合流則需要盡可能的挖掘雲服務器的計算能力。支持更多的人連麥、支持更多的特效玩法。

如何快速集成系統?

對於希望快速搭建端到端直播系統的客戶,可以選擇完整接入,包括主播端推流SDK、雲端 OpenAPI、觀眾端播放SDK。

客戶在自己的雲上隻需生成推流 URL ,實現連麥相關業務,並做 URL 的通知。連麥時,如果客戶選擇雲合流,隻需要調用一個 OpenAPI 的接口。

推流端客戶隻需要通過一個接口啟動本地音視頻設備,然後從雲端拿到推拉流 URL,調用推拉流接口就可以瞭。

觀眾端同樣,客戶隻需要從雲端拿到拉流 URL ,並調用標準播放器 SDK 的開播接口即可。

對客戶已有的直播系統,也可以通過集成阿裡雲視頻雲的原子能力,快速優化自己的直播系統。

下面分別舉三個例子。

第一個例子是主播端可以集成 RACE 前處理庫,這個 RACE 前處理庫同時兼容 iOS、Android 等主流機型以及中低端的部分機型。

第二個例子是雲端客戶可以單獨集成阿裡雲的合流服務,我們的合流服務提供對外的 OpenAPI ,支持 RTC 拉流、RTMP 拉流、RTS 拉流、點播源拉流、拉流佈局可配等特性。

同時,播放端也可以單獨集成低延時播放插件,內嵌到客戶自己的播放器當中。

效果舉例

雲端的窄帶高清編碼。阿裡雲視頻雲的窄帶高清編碼可以在同等畫質的情況下比 x264碼率節省20%以上。

觀眾端集成瞭阿裡雲視頻雲的超低延時播放器以後,可以把端到端的延時控制在1秒左右。

以上所有的成果都是阿裡巴巴多個音視頻團隊合作的結晶。在淘寶直播、釘釘直播等超大規模的直播業務場景下,得到瞭充分的驗證。歡迎廣大客戶集成試用。

阿裡雲視頻雲將對更多場景、更多維度進行技術探索,推動新內容與新交互的未來,給大傢帶來更多的視頻雲體驗。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部