Android IOS WebRTC 音視頻開發總結(十)-- webrtc入門002


繼續上一篇中未翻譯完成的部分,主要包括下面三個部分:

1,擴展:WebRTC多方通話.

2,MCU Multipoint Control Unit.

2, 擴展:VOIP,電話,消息通訊.

注意:翻譯的時候不是逐字逐句的,而是按照自己的理解翻譯的,同時為了便於理解,也加入一些自己組織的語言.

轉載請說明出處: http://www.cnblogs.com/lingyunhu.

英文來自:http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/ 

 

1對1擴展: WebRTC多方通話

或許你可以先看看Justin Uberti提出的IETF標准.REST API for access to TURN Services.

1對1通話之外的用戶使用情形很容易想象,例如:大學之間的視頻會議,或者是公共事件處理,一個人說幾百個人聽.在網狀結構的網絡中webrtc客戶端能夠使用

多個RTCPeerConnections與其他各個客戶端之間建立連接,talky.io用的就是這種方法,客戶端不多的時候這種方式效果非常好,

只不過這樣會占用很大部分的帶寬和CPU,特別是對手機端而言.

                                                               Full mesh topology: everyone connected to everyone

                                完整的網狀拓撲:每個人彼此相連

另外,webrtc客戶端能夠選擇一個客戶端直接發送流數據給其他客戶端,在這種星狀網絡結構中,可以直接做一個發布發布服務端,客戶端將流發給服務端,

服務端再推送給各個客戶端,以減輕客戶端壓力,特別是移動端,webrt.org提供了一個例子.(sample client application)

從Chrome 31和Opera18開始,來自一個RTCPeerConnection的流數據能夠作為其他端點的輸入源,Demo鏈接(simpl.info/multi),這種能夠支持更靈活的架構,

因為他使客戶端能夠選擇和哪個遠程端點建立呼叫鏈接.

 

多點控制單元

大量客戶端視頻通話的更好處理方案是使用Multipoint Control Unit,他是一個服務器,主要是用來在各客戶端之間發布流媒體數據,

MCU能處理視頻會議中不同的分辨率,幀率,編碼.能夠處理轉碼,做選擇性的流媒體轉發,混音,音視頻數據的錄制,

對多人視頻來說這里有很多問題要處理,如多人視頻怎么顯示?混音怎么處理?

像 vLine這樣的雲平台也正在試着優化網絡路由.

如果可能您也可以通過買一個MCU硬件包來創建您自己的路由服務.

                                The back of a Cisco MCU

                                                                  cisco MCU背面圖.

開源的MCU軟件也有,例如: Licode,Mantis.

 

擴展:VOIP,電話和消息

webrtc的標准化屬性使得通過瀏覽器與其他通訊平台的進行通訊是可能的,如電話,視頻會議.

SIP就是VOIP和視頻會議的信令協議,如果sip客戶端要與webrtc客戶端之間建立通訊,首選必須有一個服務端來轉換信令,

當然如果您的webrtc客戶端用的也是sip協議就不用轉接了,通訊建立后,就是流媒體的轉接,因為兩邊音視頻編碼不一樣,

所以需要有一個服務端做碼流轉換,如webrtc用的是VP8視頻編碼,一般視頻會議用的都是H264.

 

 

PSTN (Public Switched Telephone Network),他是普通模擬電話的電路交換網絡,因此如果webrtc客戶端想與電話互通,首先得經過PSTN網關.

同樣,webrtc客戶端要與遵循Jingle協議的IM客戶端互通,其必須有服務器來轉換信令,其中Jingle由Google開發的,在XMPP基礎上擴展,以支持音視頻,Google Talk中用到的就是Jingle. Jingle,不過想與QQ之間互通就有點難了,QQ用的自己定義的格式,不過他們也不想也外面的產品直接互通,至於原因你懂的.

已經有很多產品通過充分利用webrtc來與外部產品進行通訊,如:

sipML5:開源的javascript sip客戶端.

jsSIP:javascript sip庫.

Phono:開源javascript電話庫.

Zingaya:一種嵌入式手機部件

Twilio:語音和消息.

Uberconference:會議.

sipML5的開發者已經創建了webrtc2sip網關,還有webrtc通過使用OpenBTS cell在電話和電腦之間通訊.

 

更多...

WebRTC codelab: 一步步的操作告訴你怎么創建一個文本和視頻的聊天應用,他用的是運行在Node上的Socket.io信令服務.

2013 Google I/O WebRTC presentation with WebRTC tech lead, Justin Uberti.

Chris Wilson's SFHTML5 presentation: Introduction to WebRTC Apps.

這本書(WebRTC Book)給出了詳細介紹關於數據和信令通道, 也包括網絡拓撲圖的細節.

WebRTC and Signaling: What Two Years Has Taught Us: TokBox的博客介紹了為什么沒有在規范中定義信令是一個好主意.

Ben Strong's presentation A Practical Guide to Building WebRTC Apps 提供了許多WebRTC的拓撲結構和基礎設施架構.

The WebRTC chapter in Ilya Grigorik's High Performance Browser Networkinggoes deep into WebRTC architecture, use cases and performance.

 

以上如果錯誤和遺漏,歡迎糾正和補充,不勝感激.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM