WebRTC

本页使用了标题或全文手工转换,现处于香港繁体模式
求聞百科,共筆求聞
WebRTC
原作者Justin Uberti
Peter Thatcher
首次發佈2011年,​13年前​(2011
穩定版本
1.1
(2017年5月4日,​7年前​(2017-05-04
原始碼庫github.com/webrtc/apprtc
程式語言C++[1], Javascript
許可協定BSD license
網站webrtc.org

WebRTC,名稱源自網頁即時通訊(英語:Web Real-Time Communication)的縮寫,是一個支援網頁瀏覽器進行即時語音對話或影片對話的API。它於2011年6月1日開源並在GoogleMozillaOpera支援下被納入萬維網聯盟W3C推薦標準[2][3][4]

瀏覽器支援

當前支援情況

WebRTC在以下瀏覽器版本中開始支援。

支援歷史細節

  • Google Chrome:2012年1月,將WebRTC整合進Dev Channel,同年6月又完成Stable Channel的20版的整合(2012年7月,PeerConnection與MediaStream仍必須透過chrome://flags來開啟)[10]
  • Mozilla Firefox:2012年初Mozilla整合WebRTC入Firefox Alpha,此一版本的Audio Mixing已完成於Media Stream[11]
    • 2012年4月,Mozilla展示Firefox中WebRTC的視像對話[12]
    • 2013年6月,發佈22.0版本正式整合及支援WebRTC[13]
    • 2013年9月,發佈24.0版本,並宣佈Firefox for Android(流動版)正式整合及支援WebRTC[14]
  • Opera:2012年1月,Opera初步整合WebRTC。
  • Internet Explorer:Microsoft開始開放API[15]
  • Ericsson:2012年11月,Ericsson Labs做出了全世界第一個可以支援WebRTC的手機瀏覽器[16]
  • SeaMonkey:2013年1月發佈的15.0版本初步整合WebRTC。

歷史

2010年5月,Google以6820萬美元收購VoIP軟件開發商Global IP Solutions的GIPS引擎[2][17][18],並改為名為「WebRTC」。WebRTC使用GIPS引擎,實現了基於網頁的影片會議,並支援722,PCM,ILBC,ISAC等編碼,同時使用Google自家的VP8影片解碼器;同時支援RTP/SRTP傳輸等。

2012年1月,Google已經把這款軟件整合到Chrome瀏覽器中。同時FreeSWITCH專案宣稱支援iSAC audio codec[19]

組成

  • 影像引擎(VideoEngine)
  • 音效引擎(VoiceEngine)
  • 會議管理(Session Management)
  • iSAC:音效壓縮
  • VP8:Google自家的WebM專案的影片編解碼器
  • APIs(Native C++ API, Web API)

重要API

WebRTC原生APIs檔案是基於WebRTC規格書[20]撰寫而成,這些API可分成Network Stream API、 RTCPeerConnection、Peer-to-peer Data API三類。

Network Stream API

  • MediaStream:MediaStream用來表示一個媒體數據流。
  • MediaStreamTrack在瀏覽器中表示一個媒體源。

RTCPeerConnection

  • RTCPeerConnection:一個RTCPeerConnection物件允許用戶在兩個瀏覽器之間直接通訊。
  • RTCIceCandidate:表示一個ICE協定的候選者。
  • RTCIceServer:表示一個ICE Server。

Peer-to-peer Data API

  • DataChannel:數據通道(DataChannel)介面表示一個在兩個節點之間的雙向的數據通道。

安全性

漏洞

2015年,TorrentFreak報告了一個WebRTC的安全漏洞,該漏洞會致使安裝有WebRTC的用戶泄露真實IP,即使用戶已經使用虛擬私人網絡。[21]

解決方案
Mozilla Firefox:在地址列輸入「about:config」,搜尋「media.peerconnection.enabled」並雙擊將值改為「false」,WebRTC將被關閉。[22]

Google Chrome:在Google應用商店安裝Google官方擴充「WebRTC Network Limiter」。

其它方案

uBlock Origin:安裝uBlock Origin並在設置中啟用「避免WebRTC 泄露本地IP位址」可以避免本地IP泄露。但需注意的是,該方案不適用於Firefox 41(或更低)、uBlock Origin 1.3.3(或更低)版本用戶。[23]

私隱獾:安裝私隱獾並在設置中啟用「避免 WebRTC 泄露本地 IP 地址 」可以獲得額外防護,但未知具體效果。

相關條目

參考資料

  1. 存档副本. 
  2. 2.0 2.1 Google open source WebRTC for open video/audio chat - The H Open: News and Features
  3. WebRTC
  4. https://sites.google.com/site/webrtc/blog/introducingwebrtc-anopenreal-timecommunicationsproject
  5. Firefox Notes - Desktop . Mozilla.org (2013-06-25). Retrieved on 2014-04-11.
  6. Dev.Opera. My.opera.com. Retrieved on 2014-04-11.
  7. Apple Releases Safari Technology Preview 11 With Bug Fixes and Feature Tweaks. [2017-06-10] (英語). 
  8. Firefox Notes - Desktop. Mozilla.org (2013-09-17). Retrieved on 2014-08-04.
  9. http://www.openwebrtc.io/bowser/
  10. Chromium Blog: Real-time Communications in Chrome
  11. 存档副本. [2012-08-19]. 
  12. Mozilla shows WebRTC browser-based video calling - The H Open: News and Features
  13. Mozilla Firefox 22.0 Release Notes. Mozilla.org. 2013-06-25 [2013-06-26]. 
  14. 行動版 Firefox 24 已支援 WebRTC. Mozilla Taiwan. 2013-09-24 [2013-10-02]. 
  15. 存档副本. [2012-08-19]. 
  16. 存档副本. [2012-11-29]. 
  17. https://sites.google.com/site/webrtc/license-rights
  18. https://sites.google.com/site/webrtc/faq
  19. 存档副本. [2012-03-16]. 
  20. 存档副本. [2012-10-17]. 
  21. Ernesto. Huge Security Flaw Leaks VPN Users’ Real IP-Addresses. torrentfreak. 2015年1月30日 [2018年3月1日]. 
  22. Sphinx FreeBuf. WebRTC漏洞可泄露VPN用户真实IP. 位元網. 2015-02-06 [2018-03-01]. [永久失效連結]
  23. Prevent WebRTC from leaking local IP address. github. [2018-03-01]. 

外部連結