全民直播時代——基於WebRTC開發實時通訊服務

IT大咖說發表於2018-03-29


全民直播時代——基於WebRTC開發實時通訊服務

內容來源:2017年7月8日,又拍雲多媒體開發資深工程師劉博在“不止雲端計算,雲時代還有哪些寶典”進行《雲通訊 - 基於 WebRTC 技術的實時通訊服務開發實踐》演講分享。IT 大咖說(id:itdakashuo)作為獨家視訊合作方,經主辦方和講者審閱授權釋出。

閱讀字數:1126 | 4分鐘閱讀

嘉賓演講視訊回顧及PPT:suo.im/3zAPJv

摘要

本次分享基於 WEBRTC 技術的實時通訊服務的開發經驗,希望通過這次分享能讓大家對這方面更有興趣。

什麼是互動直播?

互動直播是多路音視訊以及資料實時通訊的解決方案。

首先看一下我們又拍雲自己的應用場景。又拍雲是由杭州研發總部加上北京、上海、廣州等多家分公司組成的。我們的管理層每週一上午有個每週例會,我們很需要一個簡單可靠的遠端會議系統。

在過去,我們用的是傳統的電話會議硬體,複雜難用,價格不便宜,而且效果也不理想。

現在,我們只需要一臺膝上型電腦外加一個高清攝像頭就可以了,不需要任何配置、安裝任何外掛。

互動直播的特點

互動直播和傳統直播相比的本質的區別是延時。

與傳統的直播相比,互動直播賦予了參與直播的每一個成員互動交流的能力。因此,也對實時性、抗回聲要求更高。

在視訊會議、遠端教育、遠端諮詢、視訊社交、互動遊戲等很多場景往往只能選擇實時性更高的互動直播技術。

為什麼選擇 WEBRTC?

WebRTC是一個開源,免專利費的專案,大大節省了我們的開發時間成本。

WebRTC由Google 主導,技術非常先進。

各大瀏覽器以及終端逐漸加大對 WebRTC 技術的支援。

WEBRTC OVERVIEW

WebRTC全稱是 Web Real-Time Communication。WebRTC 並不是一個單一的協議,而是一個標準,包含一堆協議和API。

WebRTC通過提供簡單易用的JavaScript APIs讓瀏覽器擁有了 P2P音視訊和資料分享的能力,同時不需要安裝任何外掛。

WEBRTC STANDARDS AND HISTORY

2010年5月,Google花了$68.2million收購了GIPS,一年後Google就開源了WebRTC專案。

WEBRTCW3C Working Group:瀏覽器API;

RTCWEBIETF Working Group:協議、資料格式、安全、P2P等。

WebRTC並不是一個孤立的協議。起初是為了瀏覽器與瀏覽器之間實時通訊,也可以通過信令協議對接現有的SIP客戶端、PSTN 網路、移動端等。

WEBRTC的核心組成

音視訊引擎:OPUS、VP8/VP9、H264;

傳輸層協議:底層傳輸協議為UDP;

媒體協議:SRTP/SRTCP;

資料協議:DTLS/SCTP;

P2P內網穿透:STUN/TURN/ICE/Trickle ICE;

信令與SDP協商:HTTP/WebSocket/SIP. Offer Answer模型。

我們的實時通訊底層平臺UPRTC

傳統的 WebRTC 應用模式是 P2P 的,我們改造成伺服器中轉的模式。

完全分散式系統, 部署到全國所有邊緣節點,通過我們的內部加速網路加速。

網路擁塞自適應控制, 較強的弱網適應能力。

針對底層開源元件進行優化改造,支援高併發。

靈活高效的業務信令,支援對敏感信令進行鑑權。

全民直播時代——基於WebRTC開發實時通訊服務

utun解決跨地區,跨ISP延遲高且不穩定等網路問題。

覆蓋200多個邊緣節點,4000多臺伺服器;覆蓋3個大運營商,2個小運營商。

uprtc實現媒體接入,接入Web端與移動端。

全民直播時代——基於WebRTC開發實時通訊服務

基於我們底層 UPRTC 平臺的第一個專案——上會

我們選用的編碼格式H.264 + Opus。修復WebRTC核心 iOS 端有音訊處理過度消耗CPU的BUG,以及修復WebRTC的core音視訊不同步的BUG。Android端H.264編碼不支援高通以外晶片硬解碼。客戶端解碼能力有限,總會話人數需要控制在8人以內。伺服器端需加入位元速率自適應演算法,自動根據參與人數控制總頻寬在2Mbps以內。美顏、濾鏡接入會增加處理延時,所以對此效能要求非常高。

我今天的分享就到這裡,謝謝大家!


相關文章