WebRTC简介
WebRTC(Web Real-Time Communications)是由Google发起的用于Web端音视频实时通信的开源项目。Google希望WebRTC可以成为浏览器端的实时音视频通信领域的API标准。在支持WebRTC API标准的浏览器中(比如Chrome),Web前端开发者,无需要求用户安装任何插件,直接调用WebRTC的JavaScript API,即可在Web端开发出Peer to Peer的实时音视频通话应用,还可以开发出高性能和高实时性的视频监控类前端应用。
WebRTC不仅为Web应用开发提供了JavaScript API,还为Windows、macOS、Linux、Android、iOS端的原生应用开发提供C和C++接口,让我们的原生应用轻松实现跨平台的高品质实时音视频通信功能。
WebRTC的起源
在WebRTC项目被开源以前,各做音视频相关应用(比如视频会议、娱乐直播)的厂商一般采用自研或者购买第三方SDK的方式实现实时音视频通信功能。自研一套成熟的跨平台的实时音视频通信SDK是相当费时费力的。企业如果不打算自研实时音视频通信SDK,那么就采用第三方商业RTC SDK。比如,在PC时代,腾讯的QQ就采用全球知名的Global IP Solutions(缩写为GIPS)公司的SDK实现了高质量的音视频通话功能。
Global IP Solutions虽然核心员工只有几十名,但是他们长期专注于实时音视频通信领域,积累大量的专利技术,当年很火的Nokia也采用过他们的实时语音通话技术,他们就凭着音视频RTC领域的SDK和相关芯片产品即可独步天下。在2010以前,GIPS的音视频实时通信技术是少数企业才能使用的专利技术。
WebRTC的发展
2010年5月,Google以6820万美元收购VoIP软件开发商Global IP Solutions的GIPS引擎。WebRTC使用GIPS引擎,实现了基于网页的视频会议,并支持722,PCM,ILBC,ISAC等编码,同时使用谷歌自家的VP8视频解码器;同时支持RTP/SRTP传输等。
2011年6月3日,谷歌宣布向开发人员开放WebRTC架构的源代码。这个源代码将根据没有专利费的BSD(伯克利软件发布)式的许可证向用户提供。开发人员可访问并获取WebRTC的源代码、规格说明和工具等。
2012年1月,谷歌把WebRTC集成进Chrome浏览器的Dev Channel分支,同年6月又完成Stable Channel的20版的集成(2012年7月,PeerConnection与MediaStream仍必须透过chrome://flags page来打开。同时FreeSWITCH项目宣称支持iSAC audio codec。
2012年初Mozilla集成WebRTC入Firefox Alpha,此一版本的Audio Mixing已完成于Media Stream。
2012年1月,Opera初步集成WebRTC。
2012年4月,Mozilla展示Firefox中WebRTC的视频对话。
2012年11月,Ericsson Labs做出了全世界第一个可以支持WebRTC的手机浏览器。
2013年1月,SeaMonkey发布的15.0版本初步集成WebRTC。
2013年6月,Google发布的Chrome 22.0版本正式宣布支持WebRTC。
2013年9月,Firefox for Android(移动版)正式集成及支持WebRTC。
2019年10月22日,W3C WebRTC 工作组(Web Real-Time Communications Working Group)发布 WebRTC 可伸缩视频编码(SVC)扩展(Scalable Video Coding (SVC) Extension for WebRTC)的首个公开工作草案(First Public Working Draft)。 文档定义了 WebIDL 中的一组 ECMAScript APIs 来扩展 WebRTC 1.0 API,以允许用户代理支持可伸缩视频编码(SVC)。
2022年3月15日,W3C媒体工作组发布自动播放策略检测(Autoplay Policy Detection)规范的首个公开工作草案。该规范为开发者提供了一种能力,用以探测在不同情况下是否允许自动开始播放媒体文件。欢迎公众通过 Github 反馈对该文档的意见与建议。