WebRTC 初览(1) 概述

来源:互联网 发布:北大青鸟知学堂在哪 编辑:程序博客网 时间:2024/05/07 08:15

翻译: http://www.html5rocks.com/en/tutorials/webrtc/basics/

因为工作的需要需要做跨平台跨终端的跨网域视频聊天程序,所以接触到了WebRTC 所以在研究之余顺便把相关资料进行了翻译总结,希望对朋友们有所助益。

WebRTC的愿景是让互联网中的所有设备,包括手机,电脑,电视,都能用一个通用的平台进行互联,让所有这些设备能用简单的方式实现点对点数据共享到web应用程序中。

最新版的chrome,opera,Firefox都已经实现了WebRTC标准的功能,可以参阅apprtc.appspot.com 查看简单的视频聊天demo.

在 chrome,opera,Firefox 打开 apprtc.appspot.com 通过点击确认按钮授权web应用程序使用您的摄像头后,就可以和其他的设备进行视频通话,我们之后的文章将贯穿这个web app的开发过程。

**

快速开始

**

没时间读(懒得等更新) 这系列的WebRTC文章的话,可以去

http://io13webrtc.appspot.com/#3 (翻墙)

查看官方的介绍视频和使用帮助。

如果你之前没有使用过 getUserMedia ,可以先参阅下 Rock article 的HTML5 的相关文章,然后研究下简单的实例源码。
地址如下 simpl.info/gum

想查看 RTCPeerConnection API 案例的话 可以查看 simpl.info/pc 它演示了在同一个页面进行RTCPeerConnection 连接的实例。

如果想了解更多的关于WebRTC 在服务器信令,防火墙穿透,NAT穿越方面的问题,可以参阅 apprtc.appspot.com. 的控制台日志。

又或者直接移步 https://bitbucket.org/webrtc/codelab 查看教程 一步步创建一个视频聊天程序,其中还包含了一个简单的信令服务器的开发。

关于WebRTC的历史

在复杂网络环境中,各类工程师经常碰到的一个问题就是实时可靠高画质低延迟的视频通讯要求,而网络上的各类RTC服务质量高低不一,高质量的RTC服务已经和复杂,昂贵开销和授权费用划上了等号。而跨平台,设备,和跨C(客户端) 和B(浏览器)的通用型技术的运用又更受到标准不一的各类浏览器和系统环境制约。

在2008年左右,谷歌的Gmail视频聊天开始变得流行了起来, 而到了2011年左右,谷歌的GTalk开始支持群聊。之后谷歌收购了GIPS公司,GIPS是一个开发了众多RTC组件,并致力于音视频编码解码以及回音消除等技术的公司. 谷歌开源了GIPS的开发成功,并在IETF的相关标准组织和W3C的参与,制定了成为行业标准的技术.。

WebRTC实现了标准的实时视频,音频和数据通信的功能,并不依赖于第三方的插件或者组件,在所有遵循了WebRTC标准的设备和程序上都可以实现实时音视频通话和文件传输。他并不像传统的SKYPE之类视频程序一样需要下载客户端,注册用户,也不存在各种系统环境下程序的兼容性问题,也不需要针对不同系统制作不同版本的程序,这样的优点极大的减少了视频通讯程序开发者的开发工作量。

他还具有小网络开销和高质量通讯效果的特质,这一切都让这个开源标准看上去如此诱人。

接下来我们应该看些什么?

接下来我们简单了解下WebRTC的3个API。

MediaStream (又名getUserMedia)
(http://www.html5rocks.com/en/tutorials/webrtc/basics/#toc-mediastream)

RTCPeerConnection
(http://www.html5rocks.com/en/tutorials/webrtc/basics/#toc-rtcpeerconnection)

RTCDataChannel
(http://www.html5rocks.com/en/tutorials/webrtc/basics/#toc-rtcdatachannel)

getUserMedia 在Chrome,Opera和Firefox都支持了它的运用,看看simpl.info/gum 上 跨浏览器的这个有意思的demo,他他实现了web 音频和视频通话。

RTCPeerConnection 这个标准api名称在经历过多次纠结之后,名称终于固定下来,在Chrome和Opera下实现为webkitRTCPeerConnection,在Firefox下他的命名为mozRTCPeerConnection。其他的曾用名在之后的新版本浏览器程序中将被弃用,最终 所有的浏览器api前缀都会归类为同一名称。在
simpl.info/pc 上有一个非常简单的实现了 RTCPeerConnection的案例,他使用了一个 适配器 adapter.js抽象掉了不同浏览器的差异化设置,用于在不同的浏览器平台下都可以使用同样的代码进行部署。

而RTCDataChannel的使用则必须要chrome 25,opera 18和Firefox 22以后的版本才能支持。

提个醒,很多声称支持实现WebRTC技术的浏览器仅仅只是说他实现了 getUserMedia 而已,并非三项全部支持。

0 0
原创粉丝点击