一种基于WebRTC的视频会议系统的架构
2015-05-30李冬
李冬
摘 要:视频会议是利用多媒体技术和数据通信技术通过计算机网络实现的两地或多地信息交互或视频会议的一种高效率、低成本的多媒体通信手段。通过对常见的视频会议系统分析,结合WebRTC技术在音频、视频和网络等方面的特性,提出了一种基于WebRTC技术的视频会议方案,并对其方案进行了研究和设计。最后对视频会议未来的发展做出了展望。
关键词:视频会议;WebRTC; 视频; 音频; 网络技术
中图分类号:P315.69 文献标识码: A 文章编号:
Implementation of video conferencing based on WebRTC
Li Dong
(Shangqiu polytechnic ,Shangqiu 476000, Henan)
Abstract:Videoconferencing is a good method for multimedia communications to realize the information interaction or meeting between two places or more based on the marriage of multimedia technology and data communication technology. Through the common video conferencing systems analysis, combined with WebRTC technical characteristics in terms of audio, video and networking, a comparatively common videoconferencing model is presented , and the scheme is researched and designed. At last the prospect of future videoconferencing development is viewed.
Key words:Videoconferencing; WebRTC; Video; Audio; Network Technology
计算机、通信和多媒体相关技术的快速发展是视频会议得以实现的研究设计基础,而且随着计算机技术和多媒体技术在人们生产生活中的蔓延与渗透,其相关产品也因之得到了大范围的普遍的应用。视频会议是指多个(超过两个)不同地方的人通过某种方式进行视频和音频的沟通,这种多人沟通的形式也被称为虚拟群组沟通。如今已然扩展至社会的方方面面:如商业方面,很多企业都通过视频会议进行内部管理或者是合作伙伴的协调关系,尤其是地理位置分布越发散,其应用则愈加广泛。在教育应用方面,学生间的学习和实验交流,教师间的学术会议交流,师生间的课程传授与指引,视频会议技术都提供了不可小视的效用便利。更进一步地,视频会议对国家政府,军事会议的交流沟通更提供了新式的可能及可见的便利,既节省了时间,减少了交通流量,同时也促进了环境保护的实施和规范实现。
本文在对常见的视频会议系统进行研究的基础上,分析了webrtc技术在音频、视频和网络技术等方面对视频会议系统的影响,并由此提出基于WebRTC的视频会议系统方案。
1常见的视频会议系统介绍
当前的视频会议系统可以分为三类,分别是大型的视频会议系统、中小型的视频会议系统以及纯软件实现的视频会议系统。
具体来说,大型视频会议系统主要由硬件构成,注重稳定性,要求速度快、延迟低、画质清晰等,适合大型企业和政府中使用。但因其基本上是由硬件搭建所致,使其成本偏高。如思科的IP视频会议系统,集成视频、语音及T.120 数据等,就可以对视频会议及带宽进行管理,尤其是还可以对广域网上的会议提供高优质量保证,更可同时支持多达50个会议。而且,视频会议参加者也可以获得现场实时交流的需求满足,因而具有理想应用效果。
中小型的视频会议系统主要是由轻型的硬件系统配合相对应的软件系统调试构成,其在视频会议的质量和功能上相对大型硬件视频会议系统上要略弱一些,但是成本上也随之降低了一些,只是总体来说仍然颇高。
纯软件实现的视频会议系统就是构建在软件平台上的视频会议系统,特点就是用软件实现。根据数据传输方式的不同细分为三类:第一类,数据传输是以IP为基础,使用TCP协议;第二类,是以组播为基础,使用UDP协议;第三类,使用RTP协议进行数据传输。
2 WebRTC关键技术在视频会议系统的应用
数据通信技术和多媒体技术的发展推进了视频会议系统的改进升级,但是迄至目前,却仍然存在着各类问题,如视频和音频数据的同步处理,网络实时数据传输,内网和防火墙的穿透,不同网络平台和系统平台的通信以及信息共享等等。基于此,本文展开了如下研究。
WebRTC技术包含音频视频采集和处理以及网络传输功能,将多媒体的处理嵌入到浏览器中,是一种基于浏览器的多媒体实时通信技术。其最初设计是用来实现浏览器间的P2P 通信。WebRTC技术在浏览器中通过统一、与平台无关的 native API与JavaScript API 向本地或 Web应用提供多种接口以供调用,如:音频引擎、视频引擎、网络传输以及对音频采集、视频采集和网络 I/O 的接口。WebRTC体系结构如图1所示。
图1 WebRTC体系结构图
Fig. 1 The structure of WebRTC system
2.1 音频数据的处理
WebRTC音频处理引擎是从声音设备到声音处理流程的功能集合,引擎中包括了设备控制、语音编码、声音的处理控制、NetEQ、加密、网络传输与流控(RTP/RTCP)等功能。
WebRTC在不同带宽下对音频编码器将有不同的选择:在宽带和超宽带中,WebRTC采用开源的iSAC音频编解码器。iSAC的采样频率一般在16kHz或32KHz,支持的可变码率为12-52kbit/s。在针对分组交换网络通信的窄宽带的环境中采用iLBC音频编解码器。iLBC音频编解码器在丢包率越大的环境中,语音质量则越具优势。测试中,在传统的VoIP的极限网络条件下,采用iLBC音频编解码器仍然能够保证语音质量,其效果不亚于手机的语音通话质量[1]。WebRTC技术默认采用iSAC音频编解码器。
音频数据需要经过降噪处理、回声消除、自动增益等处理过程才能提升语音的质量。WebRTC的NetEQ模块可以实现音频数据的错误掩盖和自适应抖动缓冲区功能。NetEQ算法能够保证在复杂多变的网络环境下快速增强适应,将缓存延迟实现最大化的降低,而且具有很高的解析度。这样不但能够减少网络抖动和分组丢失对语音通话质量的影响,而且在延时下还将尽可能地提高语音通话的品质和音质。WebRTC的回声消除模块用来实时去除由麦克风再次捕获放音所造成的声学回响,而降噪模块则用于消除与VoIP语音相关的噪声。这两个模块都是为了给基于软件的处理信号元件提供更好的语音质量。
2.2 视频图像信息的处理
视频图像在视频会议系统中的清晰度、流畅性关系到视频会议的质量,由此视频图像的信息处理即已成为视频会议系统的关键技术之一。WebRTC视频处理引擎是从视频采集设备到视频处理流程的功能集合,引擎中包括了采集设备的控制、视频数据的编码、图像质量监控以及网络安全控制等功能。
采用VP8编码技术能用更少的数据来提供更高质量的视频,本系统中应用的视频编码就相应采用了VP8编码技术。只该技术需较低的处理能力即可播放视频,因此能够在复杂多变的网络中保有优异质量,并且在较低编码率的环境中,也仍能保持较高的视频质量,这对视频会议系统来说具有至关重要的意义和作用。WebRTC中视频加密功能保证了在网络传输中视频的数据不会被轻易窃取,随即视频双方的数据安全性也获得了高度提升。
在视频处理方面,WebRTC给出了视频抖动缓冲器模块和增强图像质量模块,前者可以有效降低由视频信息包丢失和视频抖动所带来的不良影响;后者提供了颜色增强、降噪处理等功能,从而提升了图像的质量。
2.3 网络技术的处理
在网络传输以及会话控制方面,WebRTC集合了实时传输协议RTP/SRTP协议栈,以及用于穿越NAT的STUN/TURN/ICE的方法。具体地,在网络传输中,WebRTC使用了RTP/SRTP实时传输协议,这样浏览器之间建立连接后,传输音视频数据将釆用RTP协议,同时WebRTC媒体流则采用STUN/TURN/ICE技术来穿透私网。而在会议控制方面,WebRTC采用了JavaScript语言来编写协议栈JSEP。在协议栈JSEP中,定义了WebRTC通信双方如何对SDP信息进行媒体流的交换,协商和控制。JSEP的设计思路是为了降低浏览器和信令状态机的耦合度,由此协议将更具灵活性;分别地,媒体层的控制将交由浏览器,信令层的控制则交由WEB应用开发者[2]。
3 基于WebRTC的视频会议系统的架构
3.1 系统结构描述
会议主持人和会议终端是视频会议系统的两个主要构成部分。其中,会议主持人负责会议的全面管理,包括发起和结束会议、审核会议终端的加入和退出申请、控制会议发言令牌等。参加会议人员必须通过会议终端设置的身份验证。参加会议过程中,如需发言,即需提出申请,会议主持人接受申请并将发言控制令牌交与发言者,这样整个会议系统就将能看到会议发言者的全过程音频和视频信息[3]。
3.2 系统功能实现
3.2.1 管理模块
在视频会议的起始阶段,会议主持人首先启动视频会议系统发起会议,指定组播地址并提供证书。会议系统在服务器端口监听客户端的连接请求。会议终端连接服务端,提供相关证书,服务端验证无误后,会议终端与会议主持人建立连接。此后,客户端必须提供各自的用户名和密码,验证后,会议主持人就将通过验证的终端加入到相应会议分组,同时一并开启音视频的接受和传送。假设发生有会议终端加入会议系统,主持人和各会议终端界面上的“会议终端”列表处将显示其用户名。在会议过程中,各会议终端如需要发言,都可以向会议主持人提出发言申请。与其相应的列席者的名字都将会显示在会议主持人界面上的“发言申请者”列表处。
根据会议的实际情况,研究规定在此会议系统中,同一时刻只能有一个发言者。会议主持人可按照当前会议的进展情况,合理选择一个发言申请者,授予其发言令牌,并从“申请发言者”列表删除该用户名称。拥有了发言令牌的列席者,就可以开启自己的音视频发送线程,向会议系统发送音视频数据。会议主持人还可以根据会议实况,控制当前发言者的发言权限,被剥夺发言权的发言者将会重新变回普通列席者。根据会议的实际情况,允许会议客户端相互之间可以通过文字交流。而且会议终端也可以随时离开会议。会议终端离开会议系统后,会议主持人的服务器端将通过轮询模式定期检测客户端的离开情况,并将与会情况实时显示在会议主持人的“会议终端”界面上。
3.2.2 RTP 协议
RTP(Real-time Transfer Protocol)是一种网络层协议,允许应用传送不同类型具有实时特征的数据,如音频、视频等。RTP位于IP 和 UDP 之上,可以用来传送单播和组播数据流。RTP依赖底层协议来提供负载类型认证、序号和时间戳,以及监视数据传递的功能,再引入不同的应用来处理数据包丢失和乱序传递问题。
RTP 协议中包括两部分内容:其一为实时传输协议,即 RTP 协议,定义了数据报文格式及其使用规则;其二为实时传输控制协议,即 RTCP(real-time transfer control protocol)协议,用于数据传输质量的反馈以及传输控制。RTP 协议中包括实时传输控制协议RTCP协议和实时传输协议RTP 协议,前者用于数据传输质量的反馈以及传输控制,后者定义了数据报文格式及其使用规则[3]。
以 RTP 为基础的应用是通过RTCP周期性地向所有的会议终端传输会话控制信息,即可使会议服务器端能够根据RR报文和SR报文中的统计数据,执行一些特殊处理和选择,从而提供最优可控的视频和音频会议系统。
3.2.3 媒体数据处理
媒体流模块主要由3大部分组成,即语音模块、视频模块和数据传输模块。其中,语音模块负责采集语音信号,对语音数字信号进行处理(如降噪、消除回声等),对语音信号进行编码、解码以及深层的渲染和播放。语音模块集成了目前大部分的主流 Codec,如 G711、iLBC 和 iSAC 等,能较好地满足主流音频业务的需求。而视频模块则负责对视频信号进行采集、处理和渲染。为了能够使用设备的硬件加速功能,用户还可以将 H264集成到WebRTC 的视频模块框架中,由此可进一步提高编解码效率。
实际的网络情况将会因具体的应用而有所不同,但基于WebRTC的视频会议系统模型却因其采用了出色的WebRTC技术,全面解决了基于软件控制方法的视频会议系统质量低劣、网络平台受限,维护费用趋高的状况,不失为一种有效的模型。
4 结束语
随着网络通信和多媒体技术的快速发展,视频会议系统以其高效率,低能耗,小成本,且方便快捷的特点而日渐受到企事业和政府单位的欢迎,这也在相当程度上促进了视频会议系统的深入研究和开发。基于WebRTC的视频会议系统的设计方案是在现代高速宽带网络的基础上,采用出色的基于浏览器上的WebRTC技术框架而构建并实现的,不仅跨越网络平台和系统平台,而且具有优秀的视频音频性能。更进一步地,该方案不仅节省了投入,同时还适合未来宽带网和云平台的特点,因而表现出了强健的实用性、通用性和适应性,已然成为一种颇具良好实效的视频会议系统架构方案。
参考文献:
[1] 林建平,黄东军. 视频会议系统基于软交换的研究与设计[J].赤峰学院学报:自然科学版,2008,(11):27-29.
[2] 屈振华,龙显军,等.运营商借WebRTC技术推进IMS视频业务发展[J].通信世界,2012,(30):28 -28.
[3] 胡凡良,宋玲,李陶深.基于DirectShow的视频会议系统的设计与实现[J].计算机工程与设计, 2006,27(7):1164 -1166.
[4] 马建生,于沛,赵金东. 基于P2P 技术的网络视频会议系统研究[J].计算机工程与应用,2007,28(9):2063-2065.
[5] Google Chrome Team.WebRTC General Overview and References[EB/OL].[2014-04-01]http: / /www.webrtc.org/ ref-erence/architecture.