什么是webrtc
无插件的实时通讯
想象一下,如果你的手机、电视、电脑都可以通过一个平台进行通信,你可以在Web应用中轻松地加入视频聊天和p2p数据分享,这就是WebRTC的愿景。
想试一试吗?WebRTC现在已经被集成到Chrome、Opera和Firefox乃至最新的Edge上。在appr.tc有个简单的视频聊天应用可供测试。
- 在Chrome、Opera或Firefox中打开 appr.tc。
- 点击允许按钮允许应用启用你的摄像头
- 在新的选项卡中打开页面底部显示的URL,当然能在另外一台电脑上打开该URL会更好
快速开始
如果你没有时间阅读这篇文章,想直接编码,你可以这样:
- 看一看Gooogle关于WebRTC的幻灯片。
- 你果你没有用过getUserMedia,要先学习一下它,这是教程HTML5 Rocks article,这是例子。
- 掌握RTCPeerConnection API,学习本文代码段教程,在一个单独的网页中实现了WebRTC例子。
- 了解一下WebRTC信令服务、防火墙和NAT转发,这里有一些教程。
- 实在等不及了,可以通过这20多个demo练习WebRTC的Java API。
- 如果有什么问题,可以试试问题帮助页面或者。或者你可以直接跳到这一步,在WebRTC codelab上一步一步的学习如何构建一个完整的视频聊天应用程序,包括一个简单的信令服务器。
关于WebRTC的小故事
Web开发的终极挑战就是通过音频和视频进行实时通信,视频通信本应该像文本通信一样自然。但现实却是,在过去很长的一段时间,实时通信都比较复杂和困难,需要非常丰富的音频和视频技术才能进行开发。 完整的实现实时通信需要整合大量的数据和服务,这个困难在Web上实现更加尤其突出。
如果没有音视频的实时交互,我们在用户交互方面的创新能力会受到限制。
2008年,Gmail视频聊天火了。2011年谷歌发布了Hangouts,收购了GIPS,GIPS为RTC开发了许多组件,比如编码和回声消除技术。谷歌开源了GIPS的相关技术,并且与IETF和W3C等标准化组织达成了行业共识。2011年5月爱立信构建了第一个WebRTC应用。
WebRTC目前实现了实时、无插件的音频、视频和数据通信,我们迫切需要它,因为:
-
许多web service在使用RTC,但是需要下载原生app或者插件,比如Skype、Facebook和谷歌Hangouts。
-
下载、安装和升级插件非常繁琐,而且容易出错。
-
插件不容易发现问题,测试很困难,大部分都需要授权,开发成本太高。
WebRTC项目的宗旨是:API是开源、免费的、标准的、可内建于浏览器且比其他现存的技术更加高效。
WebRTC使用现状
目前WhatsAPP、Facebook 等应用都使用了WebRTC,不仅如此WebRTC还出现在其他平台中,比如TokBox。WebRTC可以被整合到WebKitGTK+或者Qt原生应用中。
一些前置知识
开发WebRTC应用需要做好下列准备:
- 获取音视频流或者其他数据
- 得到网络信息,如IP地址和端口,通过网络和其它WebRTC客户端交换数据,解决NATs/防火墙穿透问题。
- 协调信令通信来报告错误、启动或关闭会话。
- 交换媒体和客户端信息,比如分辨率和编解码参数。
- 传输音视频流或者其他数据。
为了实现数据流通信,WebRTC实现了下列API:
- MediaStream:从设备获取数据流,比如说摄像头和麦克风。
- RTCPeerConnection:音视频通话,包括设备加密和带宽管理。
- RTCDataChannel:p2p通信。

浙公网安备 33010602011771号