什么是WebRTC?
Web實時通信(WebRTC)既是一個開放源代碼項目,也是一個行業標准和規范。它支持在瀏覽器和設備之間進行本地媒體實時傳輸,例如語音,視頻和數據傳輸。這使用戶能夠從其主要的Web瀏覽器進行通信,而無需復雜的插件或其他硬件。
Google於2011年5月首次宣布WebRTC項目,以開發一套通用協議來在瀏覽器、移動平台和IoT設備中啟用高質量RTC應用程序。當時,Flash和插件是提供實時通信的唯一方法。兩年后,經過大量工作,Chrome和Firefox之間建立了第一個跨瀏覽器視頻通話。從那時起,隨着越來越多的企業添加對規范的支持,開發人員社區中對WebRTC的支持猛增。如今,WebRTC可在不同程度上在Chrome,Firefox,Safari,Edge,Android和iOS中本地使用,並且是一種廣泛流行的視頻通話工具。
WebRTC API 詳解
WebRTC API有3個主要組件,每個組件在WebRTC規范中都扮演着獨特的角色:
MediaStream(GetUserMedia):
MediaStream API提供了一種使用JavaScript訪問設備攝像頭和麥克風的方法。 它控制在哪里消費多媒體流數據,並提供對產生媒體的設備的一些控制。 它還公開了有關能夠捕獲和呈現媒體的設備的信息。
RTCPeerConnection:
對等連接是WebRTC標准的核心。 它為參與者提供了一種與對等方建立直接連接的方式,而無需中間服務器(除了信令之外)。 每個參與者都將從媒體流API中獲取的媒體插入到對等連接中以創建音頻或視頻提要。 PeerConnection API在幕后發生了很多事情。 它處理SDP協商,編解碼器實現,NAT遍歷,數據包丟失,帶寬管理和媒體傳輸。
RTCDataChannel:
設置了RTCDataChannel API,以允許直接在同級之間進行任何類型的數據(媒體或其他類型)的雙向數據傳輸。它被設計為模仿WebSocket API,而不是依賴於TCP連接,盡管該TCP連接雖然可靠性高,延遲高並且容易出現瓶頸,但它使用基於UDP的流以及具有流控制傳輸協議(SCTP)協議的可配置性。 這種設計兼顧了兩全其美:像TCP一樣可靠的傳送,但像UDP一樣減少了網絡的擁塞。
精彩推薦:開源框架WebRTC 10年發展,現已成為官方Web標准
拓展閱讀:EasyRTC視頻會議雲服務
EasyRTC是TSINGSEE青犀視頻團隊基於Webrtc研發的覆蓋全球的實時音頻開發平台,支持一對一、一對多等視頻通話。
EasyRTC擁有MCU和SFU兩種架構,無需安裝客戶端與插件,純H5在線視頻會議系統,支持微信小程序、H5頁面、APP、PC客戶端等接入方式,極大滿足語音視頻社交、在線教育和培訓、視頻會議和遠程醫療等場景需求。
隨着移動互聯網的、AI、5G等等新興技術的高速發展,結合WebRTC技術,未來將衍生出更多的應用場景,改變人類的衣、食、住、行等生活方式。