小程式直播連麥的技術實現與解析

聲網Agora發表於2018-04-25

微信在去年年底開放了小程式直播介面。小程式從僅適用於閱讀、生活服務、工具等應用的流量入口,成為了許多音視訊應用的又一個新平臺。新功能的開放讓更多應用可以利用微信的熟人社交鏈為應用快速拉新,提供便捷的增值服務,或加速應用變現。我們的客戶,荔枝 FM 就在小程式上實現語音社交直播,花椒直播也通過小程式實現直播答題一擲千金的場景。

小程式直播目前對線上教育、金融、醫療、政務民生、社交行業開放了介面,而在增加互動連麥後,將能在這些場景下實現更豐富的業務功能,擴充出更多的使用場景,例如:

  • 線上課堂:1對1、1對多的線上直播課,適用於職業教育、小班教育、學前教育等場景,實現老師、學生實時互動;

  • 視訊會議:一秒快速建立多人視訊會議,實現高效遠端協作;

  • 線上醫療:突破醫療資源的地域限制,以及系統平臺限制,實現遠端多方視訊會診,降低診斷成本;

  • 線上購物:直播展示商品,同時觀眾連麥互動,進一步促成交易;

  • VIP 客服:專屬視訊客服,1對1實時交流;

  • 銀行開戶:專用網路,無需安裝 App,通過小程式快速實現資訊認證與視訊開戶;

  • 遠端報警:從微信小程式實現一鍵報警,迅速連線相關部門,並通過實時視訊通訊,使警方能實時掌控現場情況。

通過附加低延時、高質量的音視訊互動,可以為微信小程式延伸出更廣闊的應用場景。不過在開發過程中還需要解決三大難點。

小程式互動連麥直播的實現與難點

iOS 的微信核心瀏覽器不支援 WebRTC。如果開發者通過 WebRTC 來實現小程式直播,則只能在 Android 平臺上實現直播連麥。所以要想實現支援 iOS 與 Android 平臺,就需要通過微信<live-pusher><live-player>兩個直播介面來實現。

然而通過這兩個介面都是基於 RTMP 協議進行拉流與推流。這種基於 TCP 的協議天然存在較高的延時,並不適用於直播連麥場景。

小程式直播連麥的技術實現與解析

我們曾在《詳解音視訊直播中的延時》一文中詳細分析過不同階段延時的產生與應對,延時的產生過程簡化後如上圖,延時由兩大部分構成:

  • 端上的延時。採集端和播放端會出現不同程度的延時(T1)。這一段的延時受到裝置效能、編解碼演算法、直播/通話時選取的解析度和幀率等因素影響,延時可能是幾十毫秒;

  • 在端與伺服器之間的傳輸延時(T2)。這一段延時受到網路質量、傳輸線路選擇、跨運營商、跨國等因素影響。上文提到小程式介面限制只能推/拉rtmp流,如果直接通過CDN傳輸,延時可達2-5s。裝置端上的幾十毫秒延時跟這個相比,微不足道。

因此,解決小程式延時問題的本質在於縮短T2的延時。

聲網降低延時的做法是在音視訊流經過協議轉換後,不通過 CDN 傳輸,而是通過 Agora 的私有 UDP 協議後,進行低延時的傳輸。普通的 UDP 建立的是不可靠的傳輸,因此要進行深度開發來抗丟包,讓傳輸變得可靠。並且,為了保證傳輸質量,要搭建整套低延時的 UDP 傳輸網路,有較高的技術和資金門檻。若直接上公網傳輸,無異於“裸奔”。

如何實現小程式互動連麥直播?

小程式直播連麥的技術實現與解析

如上圖所示,實現邏輯中有三個關鍵點:

  • 協議轉換:在邊緣節點通過協議轉換器對小程式端發出的音視訊流進行協議轉換;

  • 低延時傳輸:將轉換協議後的音視訊流經過聲網私有 UDP 協議傳輸到 Agora SD-RTN™ 全球虛擬通訊網路;

  • 全平臺相容:由 Agora SD-RTN™ 通過聲網私有 UDP 協議可傳輸到整合了聲網 SDK 的各個平臺 App 上。

聲網小程式直播互動連麥方案基於聲網Agora SD-RTN™ 實時雲實現低延時、高質量的實時音視訊傳輸。聲網小程式直播互動連麥方案可幫助開發者解決開發中的多個難點:

1. 完美解決 iOS 端小程式連麥直播

聲網小程式直播互動連麥方案利用微信小程式自身的推拉流介面,與聲網Agora SD-RTN™ 全球虛擬通訊網路配合,通過聲網私有的 UDP 協議實現了讓使用者可通過 iOS 端小程式與 Android 小程式的低延時連麥通話。聲網可以幫助開發者解決小程式連麥直播中的協議轉換與低延時傳輸。

2. 小程式與Native App無縫互通

聲網Agora Native SDK 支援 iOS、Android、Windows、macOS、Web 主流系統平臺。基於聲網的小程式直播互動連麥方案開發的小程式,在 Agora SD-RTN™ 的低延時實時網路環境下可實現與其它平臺 Native App 的無縫互通。

同時,Agora SD-RTN™ 在全球部署了近 200 個節點,採用分散式架構、動態路由演算法,可以避免網路擁塞、骨幹網路故障。由於是全球部署,因此跨國、跨洲傳輸也能保證高可用、低延時,可為具有全球視野的開發者提供有力支援。

3. 支援 7 人同時視訊連麥

社交直播、線上教育場景需要實現多人的直播連麥。在保證畫面解析度、音訊質量的同時,聲網的小程式方案目前可支援 7 人同時線上連麥互動。

4. 高質量,低延時

小程式與客戶端均通就“近”接入策略,讓使用者接入質量最好的資料節點,通過 SD-RTN™ 的軟體定義優化路由選擇最優路徑,自動避免網路擁塞,並規避骨幹網路故障的影響,並保證音視訊資料以最佳質量傳輸。

聲網小程式體驗 Demo 已經上線,歡迎大家掃描下方二維碼體驗!我們將稍後在Github為大家提供原始碼。

小程式直播連麥的技術實現與解析


聲網Agora 有獎徵文活動 正在進行中,只要分享與聲網SDK相關的開發經驗博文,即有機會獲得 Cherry 紅軸機械鍵盤、T恤等聲網定製獎品。詳情請戳

相關文章