基於 WebRTC 零基礎搭建實時音視頻平臺
引言
近年來,在線教育、狼人殺、在線抓娃娃、線上 KTV 等多人視頻互動模式不斷湧現,實時音視頻通信風頭正勁,實時音視頻技術 WebRTC 也因此受到了廣泛關注。相關數據顯示,2017-2021 年期間,全球網路實時通信(WebRTC)市場將以 34.37% 的年均複合增長率增長。(數據來源: Technavio 《全球網路實時通訊(WebRTC)市場,2017-2021》報告)
實時互動新時代:進擊的 WebRTC
2017 年 11 月,WebRTC 1.0 標準草案出爐後,越來越多廠商開始對它進行廣泛支持。WebRTC 官方數據顯示,WebRTC 已經有超過 1300 個公司和項目使用,80% 以上的瀏覽器支持 ,WebRTC 被應用在各種我們熟知的應用上:WhatsApp、Facebook Manager、http://appear.in 和 TokBox 等。
WebRTC 全名為 Web Real Time Communication(網頁即時通信),是 Google 推進的開源項目,最初目標是為瀏覽器實現無插件的實時音視頻通話。基於 WebRTC 搭建平臺實現連麥互動,可大大降低音視頻通信的接入門檻和開發成本:
1
80% 的瀏覽器支持 WebRTC
Google 將 WebRTC 開源之前,實現瀏覽器之間的實時通信是一個很困難的任務。現在,開發者無需關注音視頻引擎實現細節,使用簡單的 HTML 標籤和 JavaScript API 就能夠實現 Web 端的音視頻通信功能。目前,Chrome、Safari、Firefox、Opera 等主流瀏覽器已經全部支持 WebRTC,作為 H5 的標準之一,未來必將有更多瀏覽器支持。
2
可實現全平臺互聯互通
想像這樣一個場景:當你在手機上分享一個 web 鏈接給朋友,一定期望對方打開瀏覽器即可和你實時對話,因此,實現跨平臺的互聯互通是一個很重要的體驗。Google 開放了底層端 C++ 介面,基於該介面,開發者可以開發 iOS、Android、Mac、Windows 等各平臺應用,實現全平臺應用互聯互通。
3
WebRTC 具有強大的打洞能力
WebRTC 技術包含了使用 STUN、ICE、TURN、RTP-over-TCP 的關鍵 NAT 和防火牆穿透技術,並支持代理,保證 P2P 客戶端可以通過直接通信實現文件信息、處理器運算能力、存儲空間等資源的共享。
4
安全可靠,質量穩定
WebRTC 提供可靠的視頻音頻數據加密功能,保證音視頻數據在公網上的傳輸安全,無需擔心被信息竊取。對於數據敏感的企業,只要配合私有化存儲,即可實現數據的安全傳輸和存儲。同時,Google 的強大技術背書和支持,可以保證技術的快速更新迭代,例如聲音降噪、音量增益、回聲消除,可以極大的優化用戶體驗,保證穩定的質量。
WebRTC 與產業級應用之間的距離
這樣看來,基於 WebRTC 實現實時音視頻通話似乎並不難,然而實際上,從 WebRTC 到一個產業級應用,還有相當長的距離:
1、全平臺支持開發量較大:WebRTC 只提供了 Web 端的接入能力,對 Android、iOS、Windows 等客戶端沒有提供簡單易用的 SDK。對於開發者的能力和經驗有很大的挑戰,而對於缺少音視頻技術積累的公司來說,這無疑會增大開發成本、延長上線時間。
2、P2P 連接方式的天然弊病:P2P 的連接方式最大的問題在於連通成功率不高,Google 給出的國外官方數據是 86%。在多人互動的場景下,P2P 的模型更加無力。多人互動時需要把自己的流同時發布給多人,這對上行帶寬的要求很高,當前的網路環境很難支持多人會話場景。
3、場景支持單一:P2P 使用的是端到端之間直連,沒有服務端,因此支持的場景僅限於 1 對 1 的簡單通信,沒有辦法在服務端對音視頻流做處理服務,比如:合流、旁路直播、水印、轉碼等。
因此,對於音視頻技術能力儲備較少的公司,選擇一家靠譜的一站式解決方案供應商可以極大降低開發成本、縮短產品上線時間。
七牛實時音視頻雲是一套基於標準 WebRTC 的實時音視頻解決方案,同時對 WebRTC 的上述問題作出了優化。 七牛實時音視頻雲提供全平臺的實時音視頻 SDK,通過自研 RTC 加速網路及強大雲端能力支撐,為客戶提供跨平臺、高品質、可定製化的一站式解決方案。