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

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

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

  • 線上課堂: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恤等聲網定製獎品。詳情請戳
圖片描述

相關文章
相關標籤/搜索