APP下载

基于Red5网页版视频会议系统设计与实现

2012-10-20陈立水

无线电通信技术 2012年6期
关键词:与会者服务器端视频会议

李 俊,王 静,吴 巍,陈立水

(中国电子科技集团公司第五十四研究所,河北石家庄 050081)

0 引言

网页版视频会议是一个以网络为媒介的多媒体视频会议平台,使用者可突破时间地域的限制,通过互联网实现面对面般的交流效果。系统采用先进的音视频编解码技术,保证会议清晰地语音和视频效果。作为一种流行的办公方式,网页版视频会议具有省时、低耗、实时和广域的优点。

1 网页版视频会议概述

1.1 网页版视频会议的优势

与传统的基于硬件、软件的视频会议解决方案相比,网页版视频会议系统是包含即时通讯功能的纯网页解决方案,不需要支付高昂的费用购买设备,不需要下载任何客户端软件和插件,只需一台联网的普通电脑以及一般的摄像头、耳麦,就可以进行全球范围内的视频会议,享受高质量、高安全性的音视频即时通讯、协同工作、数据共享、电子白板等多种会议功能,有效地节约时间和经费,降低会议成本,提升效率,并以“零碳”排放保护全球环境。

网络平民化的今天视频会议会向更高效,更便捷,更安全的方向发展,网页版视频会议应运而生,这是IT技术发展的必然趋势。

1.2 网页版视频会议的功能

①可以远程、实时召开视频会议;

②提供电子白板和文档转换;

③提供桌面共享功能;

④可以进行群组聊天;

⑤提供会议邀请和投票功能;

⑥采用B/S结构,具有良好的兼容性和扩展性,提供良好的QoS保障;

⑦可以预约会议,会议房间分为公共,私人会议;

⑧与会者和房间具有等级之分,保证高优先级的用户和会议及时加入会议;

⑨与会者可以申请或者被赋予一定的权限。

1.3 网页版视频会议的技术

1.3.1 视频会议标准协议

H.323协议是国际电信联盟电信标准部(ITU-T)制定的多媒体通信协议族H.32X的主要组成部分,它包括的内容有:终端设备、音频、视频和数据传输、通信控制以及网络接口等。定义的4个主要组件:终端、网关、网守和多点控制单元。

H.323标准使在Internet上召开实时的视频会议成为可能。H.323标准涵盖了包交换网络上的音频、视频、数据通信,解决了点对点以及多点视频会议中诸如呼叫与会话控制、多媒体与带宽控制等问题,同时T.120标准为H.323终端增加和扩展了数据会议的功能,实现了诸如电子白板(T.126)、多点文件传输(T.127)、多点应用共享(T.128)等数据会议功能。

1.3.2 流媒体技术和传输协议RTMP

流媒体技术主要是将声音、视频和动画等数据分成一个个压缩包,向用户提供连续的,实时的传播,而不必等到整个视频文件下载完成才能观看[1]。

RTMP(Real Time Message Protocol)协议是传输层协议,是基于TCP的协议。创建的是长连接,被Flash用于数据、音频和视频的传输,它提供了对FLV视频传输的很好的支持。在RTMP中控制信息和媒体数据都称之为message。由于RTMP是基于TCP的,并且message的长度很长,所以RTMP采用了一种分片的策略,每一个分片称为chunk。每一个message被分解成一个或多个chunk。

1.3.3 客户端和流媒体服务器之间的交互配置

客户端监听调用服务器端,实现视频会议系统的功能,服务器端也可以通过一些回调函数调用客户端,用于通知与会者房间信息和其他与会者的状态信息等功能。当客户端通过流媒体服务器连接起来以后,需要得到它们的相关信息来进行管理,以便对作为视频会议终端的客户端进行组织和安排[3]。

2 网页版视频会议系统设计方案

网页版视频会议系统的功能模型如图1所示。本系统采用B/S结构设计,由服务器端和客户端两大部分组成。服务器端又分为流媒体服务器、Web服务器以及数据库;客户端只需一台安装有一个支持Flash的浏览器,摄像头以及麦克风的计算机,而界面设计源码需要部署到服务器端,与会者只需在客户端输入服务器地址,即可登录到用户登录与注册界面。

图1 网页版视频会议系统的功能模型

下面将分别介绍其中的几个主要功能模块。

2.1 流媒体服务器

流媒体服务器是网页版视频会议系统中的重要功能模块,支持把音频(MP3)和视频(FLV)转换成播放流,在下载的同时播放流;录制客户端播放流,把摄像头、麦克风等传入的视频、音频录制保存到服务器;共享对象;现场直播流发布;远程调用。主流的流媒体服务器有Macromedia公司的FMS,开源的Red5等。

设计采用的流媒体服务器是Red5。Red5是一个采用Java开发的开源Flash流媒体服务器。Red5使用RTMP作为流媒体传输协议。RTMP可以高效地传输视频、音频和数据。在视频会议系统中,Red5把摄像头采集的视频和麦克风采集的音频压制成MP3和FLV播放流,并按照RTMP标准对媒体信息进行组包和解包,利用RTP(实时传送协议)时间戳和缓冲区结合对视频流进行控制,同时利用缓冲区对音频流定时提取,将音视频各自同步到一个物理时钟,保证音视频同步。

视频会议系统中的视频服务、聊天服务、音频服务和电子白板等都将部署到此服务器。

2.2 Web 服务器

设计方案中,Web服务器基于Java编程语言,其主要负责会议进程的管理与控制,创建会议的优先级,与会者的优先级以及与会者的角色管理。

用户通过在PC客户端浏览器加入本系统后,可以创建会议、加入会议。用户创建会议时,服务器首先查询数据库,判别系统中会议数是否达到最大限度,创建人是否合法以及优先级。当与会者要参加会议时,服务器首先判别该用户是否合法,要加入的会议是否存在,与会者是由达到会议人数上限,以及该与会者的优先级[4]。图2说明了Web服务器与数据库和客户端的交互。

图2 Web服务器的交互流程图

2.3 数据库

设计方案中采用的数据库是MySQL,保存与会者的注册信息、登录信息、状态信息和权限信息,保存会议室的配置信息等。

2.4 客户端

客户端是与会者和服务器进行交互的界面,主要完成用户的注册与登录、创建会议、加入会议、会议室管理以及与会者权限管理。

3 网页版视频会议系统方案实现

3.1 服务端实现

网页版视频会议服务器端采用Java编程语言开发,采用了Spring和 Hibernate框架,其中 Hibernate是目前最流行的开源对象关系映射框架,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。由于Java语言的平台无关性,所以开发的网页版视频会议系统的服务器端可以部署在Windows、Linux和MacOS等系统上。

Red5服务器上需要实现的服务是视频服务、聊天服务、音频服务和电子白板。

视频服务实现的是与会者之间的视频交互,完成视频的邀请,本地视频流的发布以及远端视频流的获取。召开视频会议时,各个与会者的视频流都将发布并保存到Red5服务器上,与会者需要从Red5服务器上获取其他与会者的视频流。

聊天服务实现与会者之间的群组聊天和私聊。群组聊天采用广播的方式,发言者发布消息,会议室中的所有与会者都将接收到聊天消息。私聊是2个与会者之间的信息交互。

音频服务实现与会者之间的话音交流,包括两方之间和多方之间的交流。

Red5服务器上各个服务程序启动前,首先须要启动Red5服务器:

Red5应用程序启动时自动执行此方法:public boolean appStart(IScope arg0);

Red5应用程序停止时自动执行此方法:public void appStop(IScope arg0);

Flex客户端连接项目时自动运行此方法:

public boolean appConnect(IConnection arg0,Object[]arg1);

flex客户端与服务器断开连接时触发的方法:

public void appDisconnect(IConnection arg0);

Web服务器需要实现的是房间管理、发言控制与角色管理。

会议室管理主要是会议室的创建人对会议室进行的配置。设置会议室最大与会人数,保证会议的音视频质量;设置会议室的类型,包括私人会议、公共会议、视频会议和音频会议。设置会议室账号与密码,保证会议的安全。

角色管理实现与会者权限的分配。会议主持人可以赋予与会者一定的权限,与会者也可以向主持人申请权限。

发言管理保障会议的有序进行,会议主持人指定会议中的发言人以及发言顺序。

在MySQL上创建本系统数据库,用来保存与会者的注册信息、状态信息、权限信息和会议室的状态信息。red5服务器和web服务器与数据库进行信息之间的交互,完成用户的注册登录等功能。与会者注册时,注册信息需要保存到数据库中;与会者登录时,服务器需要调用数据库中的与会者信息。

3.2 客户端实现

系统设计的客户端界面由客户端界面由用户的注册与登录界面、会议室界面和管理界面组成。与会者首次登录需要在登陆与注册界面完成注册信息,填写用户名、密码、联系方式和电子邮箱等信息,提交并保存到数据库中。与会者注册完就可登录系统参加视频会议。在会议室管理界面,主持人进行会议室的配置[6]。

客户端在Flash Builder 4.6平台上进行开发,编写mxml文件,编译完成后是一个Flash的形式即swf文件,将其部署到服务器端red5安装目录下。召开视频会议时,启动服务器,与会者输入服务器端地址,即可登录到视频会议客户端界面。Mxml文件主要由不同的function和组件构成。

不同的函数function调用服务器端相应的方法,实现相应的功能。组件主要是构建客户端界面,友好的用户界面方便与会者操作。客户端和服务器端的连接由语句private var rtmpURL:String=”rtmp://192.168.1.6/webmeetings”实现。

3.3 客户端与服务器端的配置

在服务器上red5的安装目录下webapps文件夹下新建一个以工程命名的文件夹,把myapp文件夹中的WEB-INF文件夹复制到webapps里,然后新建lib、class、src三个文件夹,分别用来存放服务源码,class文件和jar文件。然后对red5-web.properties,red5-web.xml,web.xml进行配置,其中:

重新启动Red5服务器,在客户端输入服务器地址,即可参加视频会议,体验系统功能。

4 系统功能测试

本次试验环境为1个局域网,由1台服务器和4台客户端组成,图3为搭建的试验环境。服务器安装windows xp系统,需要安装jdk,red5服务器软件,与会者一、与会者二、与会者三和与会者四的计算机都需安装IE8.0浏览器,1个摄像头,1个麦克风。每个与会者输入服务器地址,端口号和服务名称即可登录本视频会议系统,完成注册,登录、创建及加入会议。本次试验的服务器地址为http://192.168.1.6:8080:webmeetings。本次试验进行了两方音/视频会议和多方视频会议的测试。

图3 搭建的试验环境

本系统实现了两方音/视频会议,双方之间实现了语音和视频交流,话音清晰,图像流畅,双方还进行了白板,桌面共享,文字聊天等;并且还召开了一个多方视频会议,实现了多方之间私聊、群聊、白板、桌面共享和音频视频交流等。

经测试证明此系统实现了网页版视频会议所设计的功能,能够进行视频会议。

5 结束语

网页版视频会议系统在节省时间、降低成本和提升效率方面明显强于传统的硬件和软件视频会议系统。通信技术和计算机技术的快速发展,必将促进网页版视频会议系统的高速发展和大量普及。网页版视频会议今后的研究热点主要是音视频的编解码技术和QoS保障[8],以进一步提高网页版视频会议系统的音/视频效果和数据协作能力。

[1]齐俊杰,胡浩.流媒体技术入门与提高[M].北京:国防工业出版社,2009.

[2]张洪斌.例解Java Web开发技术Framework draft-ietfmediactrl-sip-control-framework-11[S],2009.

[3]陆明,王旭东.基于FLV流媒体技术的视频会议系统设计[J].吉林大学学报,2010,28(2):23-25.

[4]陶安祥.基于Web2.0的视频会议系统的设计与实现[D].武汉:华中科技大学,2009:24-54.

[5]钟经伟.贯通Tomcat开发[M].北京:电子工业出版社,2008.

[6]吴衍平.对当前视频会议领域若干技术热点的综述[J].中国多媒体通信,2007(4):35-37.

[7]程佳亮.高清视频会议系统一体精髓[M].北京:清华大学出版社,2008:122-135.

猜你喜欢

与会者服务器端视频会议
省农办主任暨三农重点工作推进视频会议
Linux环境下基于Socket的数据传输软件设计
民政部召开民政领域社会工作推进视频会议
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
浅谈远程视频会议系统的构建
云技术在视频会议系统中的应用研究
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用