雲計算

直播泛在化的今天, 如何快速搭建不同場景的直播系統

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

直播場景需求的多樣性

image.png

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

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

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

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

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

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

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

阿里雲直播技術架構

image.png

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

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

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

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

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

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

直播連麥場景

image.png

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

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

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

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

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

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

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

如何快速集成系統?

image.png

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

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

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

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

image.png

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

下面分別舉三個例子。

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

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

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

效果舉例

image.png

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

image.png

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

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

「視頻雲技術」你最值得關注的音視頻技術公眾號,每週推送來自阿里雲一線的實踐技術文章,在這裡與音視頻領域一流工程師交流切磋。

image.png

Leave a Reply

Your email address will not be published. Required fields are marked *