WebRTC:最有希望統一即時音視訊服務的技術標準
原文來自:開發者頭條
✦ ✦ ✦ ✦ ✦ ✦ ✦ ✦
2011年Google發起了WebTRC開源專案和標準化工作,WebRTC已經成為未來最有希望的統一網際網路即時音視訊服務的技術標準。WebRTC將幫助更多的人更簡單的搭建實時音視訊通訊功能。
01-
WebRTC歷史
2010年5月,Google以6820萬美元收購VoIP軟體開發商Global IP Solutions的GIPS引擎,並改為名為“WebRTC”。
WebRTC使用GIPS引擎,著名聊天工具skype所使用的就是這款GIPS引擎。WebRTC實現了基於網頁的視訊會議,並支援722,PCM,ILBC,ISAC等編碼,同時使用谷歌自家的VP8視訊解碼器;同時支援RTP/SRTP傳輸等。在最新的特性中,WebRTC同時還支援跨
02-
我們需要先說一說Web應用的訪問模式
Web應用的資料傳輸通過HTTP(超文字傳輸協議)在瀏覽器之間和Web伺服器之間傳輸資料。有些HTTP協議執行在TCP(傳輸控制協議)上層,在某些新的網路是實現中,HTTP執行在WebSocket協議之上。在網路上使用的是HTML,CSS,JavaScript來承載內容和應用。採用請求——響應模式來進行選擇操作。這叫做Web瀏覽模式。
03-
我們再說一說瀏覽器中的實時通訊功能
實時通訊技術這種技術的獨特性質,決定了在在瀏覽器當中增加該功能絕對不是一個簡單的事情。實現標準化過程也是難上加難。Web瀏覽模式的基礎上,WebRTC提供了一個信令伺服器。可以理解為通訊網路中的控制器。提供信令通道。但是信令在WebRTC中現在並沒有標準化。
信令不同於使用者資訊,使用者資訊是直接通過通訊網路由發信者傳輸到收信者,而信令通常需要在通訊網路的不同環節(基站、移動臺和移動控制交換中心等)之間傳輸,各環節進行分析處理並通過互動作用而形成一系列的操作和控制,其作用是保證使用者資訊的有效且可靠的傳輸,因此,信令可看作是整個通訊網路的控制系統,其效能在很大程度上決定了一個通訊網路為使用者提供服務的能力和質量。
WebRTC還提供了一個瀏覽器與瀏覽器互動的特性,WebRTC把這種互動方式定義為“對等連線”。
對等連線在WebRTC中指的是在瀏覽器和瀏覽器,瀏覽器和其他裝置通訊裝置之間的互動方式。這些裝置之間的教誨方式可以使用非HTTP協議進行通訊,例如:UDP協議等。
04-
WebRTC中的媒體流
現在裝置可以使用和產生很多種流。舉個例子:
手機上的瀏覽器:
麥克風音訊流
應用程式共享視訊流
前置攝像頭視訊流
後置攝像頭視訊流
筆記本上的瀏覽器:
網路攝像頭視訊流
立體聲音訊流
WebRTC內建了對這些多媒體流和多資料來源的處理功能。都支援,你能想一想以後直播只需要一個手機和手機瀏覽器的場景麼?
05-
WebRTC中的多方會話
實時音視訊有兩種會話方式,一種是點對點的,就是2個裝置之間進行交流。就像2個人視訊聊天這種場景的。另外一種是多方會話,就像視訊會議這樣的場景。WebRTC針對這多方會話提供了兩種實現方式。
第一種實現方式:實現多個瀏覽器之間的對等連線——全網狀模型
多個瀏覽器通過Web伺服器訪問網站,瀏覽器之間的通話並不通過任何流媒體伺服器,而是直接通過對等連線,通過UDP來實現瀏覽器之間的通訊。這個叫做全網狀模型。
第二種實現方式:瀏覽器和媒體伺服器建立對等連線——集中式模型
服務端除了Web伺服器之外還需要架構一個臺媒體伺服器,媒體伺服器和各個瀏覽器之間實現對點連線。架設媒體伺服器的目的在於接收各個瀏覽器的媒體流六,之後通過媒體伺服器把媒體流發給各個瀏覽器。
兩種實現方式的利弊:
全網狀:不需要架設媒體伺服器,媒體延遲低質量高。但是如果人數很多的話就會導致瀏覽器的本地寬頻增加,不適合多人會議。
集中式:比較適合多人會話,節省本地寬頻,但是隻有少量瀏覽器查詢的時候,這種體系的效率非常低(因為要走媒體伺服器)。