WebRTC: 无客户端也能实时通信

http://cube.qq.com/?p=105


WebRTC: 无客户端也能实时通信

bellapeng2012.12.21HTML5标准浏览(7,702)

WebRTC: 无客户端也能实时通信

WebRTC: 无客户端也能实时通信

1.什么是WebRTC?

WebRTC是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术,它使得Web中的Real Time Communication(实时通讯)成为可能,是一项能够在浏览器内部进行实时音频和视频通信的技术。它包含为了在web上实现高质量的通讯而实现的基本的构建块,例如network, audio, vedio这些被用在音频和视频聊天应用上的组件。当浏览器实现这些组件后,开发者可以容易地通过Javascript API实现他们自己的RTC web 应用。

2.WebRTC的目的是什么?

让Web开发者能够基于浏览器通过编写简单的Javascript程序开发出丰富的实时多媒体应用(如视频会议,网页拍照等),而无需下载,安装插件和关注多媒体的数字信号处理过程。W3C等组织正在制定JS 标准API,目前是WebRTC 1.0版本。

3.WebRTC架构

 

4. 谷歌做了些什么?

a) Google面向web浏览器开发者,将GIPS封装到一些Java Script APIs中,创建了WebRTC,这意味着VoIP技术将可以为百万开发者所使用。

b) Google开源了WebRTC,将其置于宽松的BSD证书下——这使得该技术可以被重用、修改并衍化开发;使得该技术脱离了实时媒体工程师的控制。

c) Google将该技术提交给W3C 和 IETF标准机构进行标准化,确保该技术成为浏览器中的通用部件,并在此过程中,去除该技术中任何与Google相关部分。

d) 它忽略了拨号层,让开发商可以在任何实时通信环境下使用WebRTC,而不必考虑是使用何种协议建立信号通信。

谷歌的Chrome团队发布的Chrome 21稳定版本(Windows平台上的版本号是21.0.1180.60)中包含一系列新的特性,新增了一个用于高质量视频音频通信的getUserMedia API,该API允许Web应用程序访问你本地的摄像头和麦克风,而无需使用插件(当然,为了安全性,在demo实现上都会给你一个选项问你是否允许网页访问你本地的摄像头和麦克风),这是实现Web RTC的第一步。

我们会发现谷歌将本地应用体验一步步带入浏览器中。

WebRTC

WebRTC

5. 爱立信做了些什么?

爱立信于今年10月20日公布了全球首款兼容WebRTC的浏览器Bowser,使开发者能在基于Web的应用中整合话音和视频通信。Bowser是一款免费应用,支持iPhones智能手机、iPad平板电脑和Android设备

WebRTC

WebRTC

它主要是通过WebRTC技术中的PeerConnection API实现的,如果你想了解更多,可以参考WebRTC官网:http://www.webrtc.org/reference/native-apis

Bella也搜索到了一个用WebRTC中的getUserMedia API 和PeerConnection API等技术实现的一个视频聊天室应用,你可以体验和学习它: http://jeromeetienne.github.com/webglmeeting/#room-1046

6. getUserMedia

getUserMedia API 是WebRTC技术中的一个有趣的API,它允许Web 应用程序创建很多新颖的体验。例如下图所展示的,当你点击中间的按钮,网页会跳转到另一个页面,如果你继续点击新页面中的“使用我的相机”,也就是允许网页访问你本地的摄像头,网页就会给你拍照。而且,你可以使用70多种有趣的特效和过滤器来对所拍照片做各种美化处理,是不是挺炫的?

WebRTC

WebRTC

WebRTC

WebRTC

这个有趣的应用的地址:http://neave.com/webcam/html5

当然,我们很容易注意到这里隐藏着的安全问题,因为如果web应用并没有实现给你是否允许访问本地摄像头的选择的话,也许你打开某个网页,在你不知情的情况下它就能获取到你本地的摄像头从而获取摄像头前的任何图像。而且,getUserMedia API标准里也确实没有提到关于是否能够获取摄像头和麦克风的隐私问题,不过,目前的应用默认都会考虑到这点。

你可以在这个网址上找到很多用getUserMediaAPI实现的有趣的应用:http://shinydemos.com/getusermedia/

这个API的使用方法很简单,下面是从W3C官网上摘取的一段代码。它实现了点击按钮后调用getUserMedia方法来访问你本地的摄像头和麦克风从而获取媒体流。

WebRTC

WebRTC

getUserMedia是navigator对象的一个方法,第一个参数是一个对象,对象里面包含两个键值对,名称为audio和video,值为布尔值,缺省值都为false,即不允许访问视频和音频流,如果值都为true,则表示允许访问视频和音频流。第二个参数是获取媒体流成功后的回调,第三个参数可选,为获取媒体流失败后的回调。

7. WebRTC的未来

“无客户端也能语音聊天”,很多人会这样标榜WebRTC,有别于QQ、Skype、YY等语音聊天服务,WebRTC不需要客户端,只需要浏览器,打开一个指定的网页,即可与你的朋友们视频、聊天,这确实非常有趣和便捷。

积极地实现各种WebRTC新技术并推动它成为W3C标准的Google可能看到了潜在的巨大的前景。像Google+Hangouts视频群聊这些功能拥有数百万的用户,管理其终端用户软件部署存在不少复杂性。如果要减少甚至消除终端用户软件,WebRTC无疑是一个非常有效的方法。目前 WebRTC 已经成为 W3C 和 IETF 的标准,Chrome、Firefox 和 Opera 这三家浏览器都提供支持。

当然,WebRTC的未来在很大程度上要取决于开发标准工作小组和相关浏览器厂商的态度。WebRTC的推广还依赖于我们这些前端开发工程师对它的态度。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值