webRTC脫坑筆記(一)— 初識webRTC

webRTC概述

WebRTC--- `Web browsers with Real-Time Communications (RTC)`html

WebRTC是一個開源項目,能夠在`Web`和本機應用程序中實現音頻,視頻和數據的實時通訊。html5

在Firefox,Opera和Chrome桌面和Android上。WebRTC也可用於iOS和Android上的本機應用程序。web

有了WebRTC ,不須要任何插件或第三方軟件來處理典型問題,例如數據丟失、鏈接中斷和NAT遍歷。api

webRTC 適用領域瀏覽器

  • 實時營銷
  • 實時廣告
  • 後臺通訊( CRM、ERP、SCM、FFM )
  • HR管理
  • 社交網絡
  • 約會服務
  • 在線醫療諮詢
  • 金融服務監控
  • 多人遊戲
  • 實時廣播
  • 在線教育

webRTC採用的協議
實時數據通訊意味着兩個用戶設備之間的快速鏈接。公共鏈接採用視頻或音頻序列幀的形式,將其一每秒30至60次的速率傳輸給另外一個用戶設備,以得到良好的質量。所以,必須瞭解,快速發送最新的數據幀比確保每一個單個幀都到達更重要網絡

這就是爲何WebRTC應用程序可能會錯過某些幀,以便保持良好的鏈接速度。架構

這也就是WebRTC應用程序使用UDP(用戶數據報協議)做爲傳輸層協議的緣由。框架

可是爲何創建UDP是不可靠的傳輸層,由於沒法肯定如下狀態:frontend

  • 數據的順序
  • 數據的交付狀態
  • 每個數據包的狀態

音頻和視頻WebRTC鏈接不是最可靠的,而是在兩個用戶設備之間傳輸最快的。在能夠承受的範圍內保證數據的快速傳輸,這意味着UDP是音頻和視頻流應用程序的最佳選擇。tcp

webRTC體系架構

這張圖來源於webRTC入門,應該每一個人最開始接觸webRTC時都會知道架構圖,它描述了RTCPeerConnection的做用。

圖中能夠看出一共三個不一樣的層:

  • web開發人員的API:包括RTCPeerConnection、RTCDataChannel和 MediaStrean對象
  • 瀏覽器廠商的API
  • 供瀏覽器廠商以hook方式複寫的API

傳輸組件容許在不一樣類型的網絡中創建鏈接,而語音視頻引擎是負責將音頻視頻流從聲卡和攝像機傳輸到網絡的框架。對於web開發人員來講,最重要的部分是WebRTC API。

下一篇將講解webRTC API。

參考資料:
webRTC教程
Getting Started with WebRTC

相關文章
相關標籤/搜索