WebRTC

WebRTC
原作者Justin Uberti
Peter Thatcher
首次发布2011年,​13年前​(2011
源代码库
  • github.com/w3c/webrtc-pc
編輯維基數據鏈接
编程语言C++[1], Javascript
许可协议BSD license
网站webrtc.org/ 编辑维基数据

WebRTC,名稱源自網頁即時通訊(英語:Web Real-Time Communication)的縮寫,是一个支援網頁浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被納入万维网联盟W3C推荐标准[2][3][4]

瀏覽器支持

当前支持情况

WebRTC在以下浏览器版本中开始支持。

  • 桌上PC端
    • Microsoft Edge
    • Google Chrome 23
    • Mozilla Firefox 22[5]
    • Opera 18[6]
    • Safari 11[7](仍处于开发者预览阶段)
  • Android端
    • Google Chrome 28(从版本29开始默认开启)
    • Mozilla Firefox 24[8]
    • Opera Mobile 12
  • Google Chrome OS
  • Firefox OS
  • iOS 11
  • Blackberry 10 内置瀏覽器

支持历史细节

  • 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引擎[17][2][18],並改為名为“WebRTC”。WebRTC使用GIPS引擎,实现了基于网页的视频会议,並支持722,PCM,ILBC,ISAC等编码,同時使用谷歌自家的VP8影片解碼器;同時支持RTP/SRTP传输等。

2012年1月,谷歌已經把這款軟體整合到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:在谷歌应用商店安装谷歌官方扩展“WebRTC Network Limiter”。[23]

其它方案

uBlock Origin:安装uBlock Origin并在设置中启用“避免WebRTC 泄露本地IP地址”可以避免本地IP泄露。但需注意的是,该方案不适用于Firefox 41(或更低)、uBlock Origin 1.3.3(或更低)版本用户,且该设置选项在本程序的1.38版本中被移除[24]

隐私獾:安装隐私獾并在设置中启用“避免 WebRTC 泄露本地 IP 地址 ”可以获得额外防护,但该选项在其2022年9月27日更新的新版本中移除。[25]

相關條目

參考資料

  1. ^ src/webrtc - Git at Google. [2018-09-09]. (原始内容存档于2018-04-23). 
  2. ^ 2.0 2.1 Google open source WebRTC for open video/audio chat. 2011-06-01 [2012-03-16]. (原始内容存档于2011-06-25). 
  3. ^ WebRTC. [2012-03-16]. (原始内容存档于2011-06-04). 
  4. ^ Introducing WebRTC - an open real-time communications project. 2011-05-03 [2012-03-16]. (原始内容存档于2011-06-28). 
  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]. (原始内容存档于2021-08-20) (英语). 
  8. ^ Firefox Notes - Desktop (页面存档备份,存于互联网档案馆). Mozilla.org (2013-09-17). Retrieved on 2014-08-04.
  9. ^ Browser - WebRTC on iOS. [2015-01-01]. (原始内容存档于2020-08-08). 
  10. ^ Real-time Communications in Chrome. 2012-01-18 [2012-08-19]. (原始内容存档于2022-04-12). 
  11. ^ Paul, Ryan. Mozilla Demos MediaStream Processing, Audio Mixing in Firefox. 2012-01-10 [2012-08-19]. (原始内容存档于2012-08-17). 
  12. ^ Mozilla shows WebRTC browser-based video calling. 2012-04-10 [2012-08-19]. (原始内容存档于2021-07-14). 
  13. ^ Mozilla Firefox 22.0 Release Notes. Mozilla.org. 2013-06-25 [2013-06-26]. (原始内容存档于2013-10-28). 
  14. ^ 行動版 Firefox 24 已支援 WebRTC. Mozilla Taiwan. 2013-09-24 [2013-10-02]. (原始内容存档于2013-10-05). 
  15. ^ HTML5Labs - Info. [2012-08-19]. (原始内容存档于2016-03-07). 
  16. ^ The World’s First WebRTC-Enabled Mobile Browser. 2012-10-19 [2012-11-29]. (原始内容存档于2012-12-18). 
  17. ^ License & Rights. [2012-03-16]. (原始内容存档于2011-06-04). 
  18. ^ FAQ - WebRTC. [2012-03-16]. (原始内容存档于2011-06-04). 
  19. ^ WebRTC Gets a Shot in the Arm with mod_iSAC!. 2012-01-24 [2012-03-16]. (原始内容存档于2012-02-04). 
  20. ^ WebRTC 1.0: Real-time Communication Between Browsers 协议文档中文版 汇总. [2012-10-17]. (原始内容存档于2012-10-19). 
  21. ^ Ernesto. Huge Security Flaw Leaks VPN Users’ Real IP-Addresses. torrentfreak. 2015年1月30日 [2018年3月1日]. (原始内容存档于2015年2月22日). 
  22. ^ Sphinx FreeBuf. WebRTC漏洞可泄露VPN用户真实IP. 比特网. 2015-02-06 [2018-03-01]. (原始内容存档于2018-08-16). 
  23. ^ WebRTC Network Limiter - Chrome Web Store. Chrome网上应用店.  缺少或|url=为空 (帮助); 使用|accessdate=需要含有|url= (帮助)
  24. ^ Prevent WebRTC from leaking local IP address. github. [2018-03-01]. (原始内容存档于2016-02-21). 
  25. ^ EFForg. Changelog. Github. 2022-09-27 [2023-07-21]. (原始内容存档于2023-07-21) (英语). 

外部連結

  • Is WebRTC ready yet? (页面存档备份,存于互联网档案馆) - 各家網頁瀏覽器對WebRTC支援程度
  • IP/DNS检测 (页面存档备份,存于互联网档案馆) - 检测您是否能够防御WebRTC泄露与DNS泄露并提供帮助
產品及
標準
推薦
记录
  • IndieAuth英语IndieAuth
  • XAdES英语XAdES
  • XHTML+SMIL英语XHTML+SMIL
  • XUP
工作草案
  • CCXML英语Call Control eXtensible Markup Language
  • CURIE英语CURIE
  • EME
  • InkML
  • JSON-LD
  • MSE
  • RIF
  • SCXML英语SCXML
  • SMIL時間表英语SMIL Timesheets
  • sXBL英语sXBL
  • WICD英语Web Integration Compound Document
  • XFDL英语Extensible Forms Description Language
  • XFrames英语XFrames
  • XBL
  • XMLHttpRequest
檢測
倡議
  • 多通道交互活動(MMI)英语W3C MMI
  • 驗証服務
  • 無障礙網頁倡議英语Web Accessibility Initiative
  • 網絡平台英语WebPlatform
棄用
  • C-HTML
  • HDML英语Handheld Device Markup Language
  • JSSS英语JavaScript Style Sheets
  • PGML英语Precision Graphics Markup Language
  • VML
  • XHTML+MathML+SVG英语XHTML+MathML+SVG
機構
  • 萬維網基金會英语World Wide Web Foundation
工作小組
  • SVG英语SVG Working Group
  • CSS英语CSS Working Group
  • HTML英语HTML Working Group
  • WebOnt(語義網活動)英语WebOnt
  • 設備描述(DDWG)英语W3C Device Description Working Group
  • 網頁超文本技術工作小組(WHATWG)
軟件
瀏覽器
  • Line Mode (1990年-)
  • Arena (1993年-1998年)
  • Agora (1994年-1997年)英语Agora (web browser)
  • Argo (1994年-1997年)英语Argo (web browser)
  • Amaya (瀏覽器及編輯器,1996年-2012年)
會議
  • 國際萬維網大會(WWW大會)英语International World Wide Web Conference
    • 督導委員會(IW3C2)英语International World Wide Web Conferences Steering Committee
    • 第一屆(WWW1,1994年)英语First International Conference on the World-Wide Web