基于浏览器的音视频通讯系统实现

来源 :大陆桥视野·下 | 被引量 : 0次 | 上传用户:xixiaoqiqi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】WebRTC因其开放的标准、简单易扩展、同运营商网络的互联互通、与其他技术结合等特性,本文旨在通过对W3C WebRTC标准的跟踪和业界WebRTC开源项目的系统分析,梳理出WebRTC应用所涉及的关键技术。
  【关键词】WebRTC; 通讯系统;浏览器;
  WebRTC(Web Real-Time Communication)Web上的实时通信,泛指基于网页的实时通信业务,如电话、视频会议、即时消息等。WebRTC项目的主要目的是让Web开发者不用其他的软件就能够便利的开发出实时的,基于浏览器的多媒体应用,Web开发者也无需对多媒体的数字信号处理过程过多在意,只需简单的Javascript和HTML5技术即可即可实现。WebRTC基于标准的WHATWG协议,给予了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。
  1.业界WebRTC原型概况
  1.1业界WebRTC
  (1)官方demo
  没有用任何封装库,信令机制使用了XHR和Google App Engine Channel API,可实现浏览器间的视频音频通信。
  (2)爱立信实验室开发的WebRTC demo
  这是第一个基于浏览器的WebRTC视频通信demo,爱立信为此还开发了一个基于WebKit的浏览器用于支持WebRTC,叫做Bowser browser(当时市场上可能还没有支持WebRTC的浏览器)。
  (3)华为WebRTC
  华为WebRTC网络并不仅仅着眼于WebRTC用户系统,而是秉持CAAS(Communication as a Service)的核心理念,开发使用简单,作为其WebRTC能力开放网关地关键足点。
  1.2业务流程分析
  (1)向Participations UA返回成功将其加入会议室roomName的消息,ParticipationUA收到消息后添加本地的视频流到指定位。
  (2)向Host UA广播Participations UA加入到会议室roomName的通知,广播消息中包含Participations UA的标识。
  (3)Host UA在收到Signaling Server广播Participations UA加入到会议室roomName的通知后,会着手进行两个方面的工作。
  (4)发起与Participation UA的媒体协商:首先获取并保存本地的媒体面信息offer,并途经Signaling Server路由转发给ParticipationsUA。Participations UA收到offer后,保存Host UA的媒体面信息并据此创建协商媒体信息answer,最后将answer途经Signaling Server路由转发给Host UA。
  至此,Host UA与Participations UA之间已可以进行端到端的视频通话。
  2.多方视频会议系统设计与实现
  2.1 设计方案
  WebRTC标准Javascript接口由浏览器提供,客户端与服务端双向通信采用WebSocket(客户端由浏览器提供支持,服务端由tomcat提供支持),jain-sip采用Mobicents开源的JavaScript库来提供SIP栈的支持。WebRTC封装库建立在WebRTC和jain-sip的基础上,它利用jain-sip提供的SIP栈功能组装SIP请求并经过浏览器提供的WebSocket传输给服务端。
  WebRTC封装库的主要功能如下:屏蔽不同浏览器厂商在WebRTC标准接口实现上的差异(包括接口命名差异和方法调用差异);将客户端与服务端之间双向通信连接建立机制以及通信的细节,做到向上层Web应用开发者透明;在端到多端的媒体协商以及防火墙穿越机制上,做到向开发者透明。
  2.2 关键技术
  2.2.1 SIP信令交互技术
  在W3C WebRTC标准中,对客户端与服务端之间的信令没有具体的标准。SIP以其简易、灵巧和可伸展等特性,得到越来越多的关注和赞同,已成为下一代Web通信事实上的规范。正是基于这样一种特点,本项目开发以SIP为核心的WebRTC视频通信系统。为完成客户端与服务端SIP信令交互,本系统在客户端侧使用其对JAIN-SIP标准的参考实现来提供SIP栈服务,服务端侧利用SIP Servlet API来处理客户端侧请求或进行路由分发,客户端与服务端之间的双向通信采用了WebSocket协议。在本系统中,服务端实际上就是充当个背靠背代理的角色。
  2.2.2 多方媒体协商技术
  多方媒体协商与防火墙穿越协议机制是实现WebRTC多方视频会议的关键所在。在具体的实现策略上,WebRTC封装库将多方的协商过程分解成多个端到端的协商过程,可通过后入会者发起来实现。这里简要描述一下后入会者协商的过程:
  (1)第一方与第二方情形下,由一对PeerConnection对象来完成offer/answer的协商。主动协商的一方PeerConnection利用接口createOffer获取到本方的媒体面相关信息后,将该信息通过信令服务器传送到对端。对端的PeerConnection对象保存该信息,并利用接口createAnswer获取当地的媒体面信息,并将其通过信令服务器回传给主动协议的一方。这样,两方之间的协商完成。
  (2)当第三方加入会议时,应用程序会创建两个PeerConnection对象,一个用来与第一方进行协商,另一个用于与第二方进行协商。第二方和第三方在收到第一方对应的PeerConnection对象发送过来的offer信息后,将分别创建一个新的PeerConnection对象来负责与之交互,并按照1)所述的方法完成与第三方的媒体协商过程。   2.2.3 NAT/防火墙穿越技术
  这种技术是把内部网络(简称为内网)私有IP地址转变为外网公共IP地址,它使得局域范围内的多台主机利用同一个公共IP地址就可以连接到外网。一方面,NAT技术可以在很大程度上缓解了公网IP地址紧缺的问题,并有效减少了内网主机受外部系统攻击的可能性。另一方面,对于WebRTC等Web音视频通信而言,NAT的应用会致使其在跨局域网的环境中失效。这是因为,位于局域网的主机无法在公网上进行路由,进而无法完成不同局域网内部主机相互之间的P2P通信。
  3.多方视频会议系统性能测试与分析
  3.1环境搭建
  3.1.1下载安装jdk
  进入oracle官网downloads专区,选择下载版本jdk-6u13-windows-i586-p.exe,双击运行即可安装。
  3.1.2配置jdk环境变量
  在控制面板系统和安全系统高级系统设置环境变量系统变量中新建环境变量JAVA_HOME并设置成下面的格式,找到Path和CLASSPATH分别设置成如下所示的格式。JAVA_HOME
  C:\Program Files\Java\jdk1.6.0_13
  Path
  %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT Server\110\Tools\Binn\;E:\Project\opencv\build\x86\vc11\bin;%JAVA_HOME%\bin;
  CLASSPATH
  %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
  3.2 核心流程
  在服务端侧,处理“创建会议”和“加入会议”的逻辑实际上也是作为两个分支集成在同一个大的处理逻辑当中(SIP Servlet里面的doSubscribe),为了区别两者不同的请求,我们事先约定按照客户端SUBSCRIBE请求头部里面的Expires的整型值来确定:当请求中的Expires为3600时,是创建会议的请求,当请求中的Expires值为1800时,是加入会议。
  用户加入会议成功后,服务端返回的信息,显示本地视频流用的是HTML5的getUserMedia接口。当然,获取到这个媒体流Stream后,还需要借助HTML5 URL接口将其转换成url,然后再添加到HTML5
其他文献
分析三类处所宾语句的内部构成以及历时演变情况发现,上古汉语中的三类处所宾语句概念结构不同,中古以后逐渐演变成动趋式带处所宾语的句法形式。同一运动事件,单动词带处所
2016年韶关市蔬菜生产形势整体较好,在种植面积、产量和产值方面均有一定增幅,但仍存在新品种及配套技术缺乏、集约化育苗产业发展不足、生产管理较为粗放和缺少带动型龙头企
中日两国关系源远流长,但有清一代,由于种种原因,中日两国没能建立起正式的邦交关系,在这种大历史背景下,漂风难民的到来以及对于漂风难民问题的处理就成了清日两国交往中的
<正>心力衰竭(心衰)是各种心脏病发展的终末期,慢性心衰的规范化药物治疗,需要引起临床重视。我们前期介绍了血管紧张素转换酶抑制剂(ACEI)和β受体阻滞剂在慢性心衰中的应用
肺损伤可由多种因素引起,目前临床尚无特效的治疗方法改善患者的预后,运用细胞治疗疾病是目前各个医学领域研究的热点.间充质干细胞减轻肺损伤的作用在国内外许多研究中已得
光照度是温室大棚作物生长发育的核心要素,其直接影响植物光合作用的速率与效率。文章以温室大棚常见作物——西红柿的光照需求为例,在充分研究光照强度对西红柿生长特性影响
“电子商务”课程是当前高校非常热门的一门课程,将“课程思政”应用到“电子商务”课程教学中十分必要。本文分析了“课程思政”在高校“电子商务”课程教学中的应用必要性,
高效生态农业是我国现代农业可持续发展的必然趋势。文章调研了我国高效生态农业的现状,分析了其主要影响因素,并诠释了人机料法环质量管理理念,从科技助力的角度给我国高效
《地球科学与环境学报》编辑部决定从2014年第1期起再次增加论文刊载容量,每期页码由原来的128页增加至144页,欢迎广大作者踊跃投稿!
育婴事业是对父母无力养育或遭遗弃的婴孩进行抚养与资助的慈善行为,是社会救济体系的重要组成部分。清代广东育婴事业始于康熙年间。广东地区的育婴机构分布广泛,按其创办性