一种实现音视频分开传输的Web视频会议的方法

文档序号:7890862阅读:180来源:国知局
专利名称:一种实现音视频分开传输的Web视频会议的方法
技术领域
本发明涉及信息技术领域,具体涉及使用流媒体技术及IP PBX来实现多功能网页版视频会议。
背景技术
视频会议系统是指两个或两个以上不同地方的个人或群体,通过传输线路及多媒体设备,将声音,影像及文件资料互传,达到即时互动的沟通,以完成会议目的的系统。随着互联网技术的发展,在地理上分散的用户可通过图形、声音等多种方式交流信息,人们可以远距离进行实时信息交流与共享、开展协同工作。目前,越来越多的人开始享受网上办公,远程医疗,远程通信,远程协作,远程培训等全新的工作模式。随着互联网技术的迅猛发展,通过视频会议系统来实现人与人之间的沟通已经成为必由之路。
·
目前,主流的音频编码技术主要有G. 711、G. 722、G. 728、G. 729、MP3等;主流的视频编码技术主要有H. 261、H. 263、H. 264、MPEG-2、MPEG-4等。其中,H. 264作为最新一代视频编码协议,能在低带宽下实现高清的动态图像效果,而且编码延时小,优势非常明显。这使得视频会议终端及MCU是否支持H. 264视频解码协议,成为衡量该视频会议品牌是否具备竞争力的关键指标。目前绝大部分使用阶段的视频会议系统都是基于C/S架构的,然而,Web2.O技术发展,越来越多的软件产品都以web方式为用户提供服务,特别是RIA (Rich InternetApplications)技术,更能创建具有高度互动性、用户体验丰富以及功能强大的客户端。在这种方式下,用户通过浏览器直接登录系统,主要事务逻辑在服务器端实现,极少部分事务逻辑在前端实现。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据库,而且维护和升级方式简单。客户端只需要安装浏览器而不用安装任何专门的软件即可进行业务处理。视频会议的音频数据量远远小于视频的数据量,编码的时延也比视频时间短。因为会议以说话为主,在网络拥塞时,画面可能会有马塞克。音频交互可通过IP PBX来实现,视频数据通过流媒体广播技术来传输,这样会议的声音可以是连贯和清晰的。随着人与人之间互动方式的增加,视频会议系统在提供提供音频、视频的交互的同时,它可以作为一个协作系统,实现白板、文档共享等附加功能。这样,用户可高效率的实现会议交流及信息共享。

发明内容
本发明的目的在于克服现有技术存在的以上问题,提供一种音频数据和视频数据分开传输、支持电子白板、支持文件共享、支持文字聊天的多功能Web视频会议的方法,解决了在网络较拥塞的情况下音频传输不流畅的问题,并采用RIA技术创建用户体验丰富、功能灵活的Flash客户端。为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现一种实现音视频分开传输的Web视频会议的方法,包括以下步骤
第一步,客户端通过页面来实现底层数据库的创建及初始化、管理员的创建及读取配置文件到数据库,管理员通过后台管理来添加新用户及修改会议室配置;
第二步,会议发起人员通过IP PBX配置语音会议室,当用户连接该语音会议室时会浏览器自动访问视频会议的网址,当网络比较通畅的情况下,该步骤可以省略,音频和视频数据都通过RTMP协议在Internet上传输;
第三步,客户端自动连接到服务器,连接成功后,服务器端为用户创建ID,并根据连接的ID为用户创建RoomClient,用户输入用户名和密码,并根据网络带宽状况选择视频传输质量,有两种模式可选,登录成功后,跳转到视频会议的主界面;
第四步,用户选择会议室,并点击进入,这时,与Red5服务器断开,客户端根据ID作为Scope,重新向服务器发起连接,用户获取连接该Scope的客户端列表,并在 VideoContainer中创建NetStream,根据分配的BroadcastID打开房间其他用户发布的视频流,当用户成功进入该会议室后,向服务器端申请BroadcastID,并发布本地视频流到服务器端,同时,服务器端会让连接到该Scope的其他连接调用客户端的addNewUser方法,通知其他用户同步更新会议成员列表及创建VideoContainer来打开新成员的视频流;
第五步,用户使用电子白板及文字聊天进行互动,当用户在电子白板上涂鸦或者上传文档到白板上播放时,客户端会调用服务器端的函数,把白板对象上传到服务器端,服务器端会调用客户端的方法,通知其他客户端的电子白板做出同步变化,当用户发送文本信息时,首先调用函数将信息发送到服务器端,服务器端保存该信息到聊天记录,同时调用客户端的方法通知其他客户端有新信息;
第六步,会议接受后,用户断开与该Scope的连接,并重新连接到主界面,当用户关闭浏览器时,删除用户的session数据,同时,用户挂机退出音频会议。本发明的有益效果是
本发明提供了一种基于Web的视频会议系统,用户无需在本地安装客户端软件,只需有浏览器支持即可实现在线视频会议,同时,为解决视频会议语音不连贯的问题,使用IPPBX创建语音会议室,让视频数据和音频数据分别走Internet和PSTN两路分开传输。同时,视频会议系统采用流媒体服务器Red5作为视频服务器,不仅能够实时视频播放,还能够实现电子白板、文件共享(支持doc、ppt、pdf及图片等格式)、文字聊天附加功能,丰富了用户的交互方式。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式
由以下实施例及其附图详细给出。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中
图I音视频分开传输的Web视频会议系统总体结构 图2服务器端存储客户端信息的基本结构 图3客户端与服务器端建立连接的基本流程图;图4服务器端收到用户进入会议室消息的处理流程 图5客户端与服务器端视频流交互的基本流程 图6用户电子白板交互的基本流程 图7用户文本聊天交互的基本流程图。
具体实施例方式下面将参考附图并结合实施例,来详细说明本发明。本发明采用Red5流媒体服务器作为视频服务器,利用IP PBX来创建音频会议,当用户通过话机或页面上拨号盘连接通过IP PBX创建的语音会议室时,用户终端的浏览器自动打开视频会议的URL地址。该系统客户端采用RIA OpenLaszl0语言编译成Flash,利用RTMP (Real Time Messaging Protocol)协议来实现Flash客户端与Red5服务器之间视频 (音频可选)和数据对象的传输。当服务器接收到客户端的连接请求时,首先启动预先编译的swf文件,该文件通过创建NetConnection来连接Red5服务器,服务器端的ScopeApplicationAdapter类作为应用程序的Handler来完成用户请求的响应,并启动服务器端的应用程序。Flash客户端可以远程调用Red5服务器的函数,同时,服务器端IServiceCapableConnection类型的连接也可以调用客户端方法。服务器端主要分为用户管理模块、会议室管理模块、文件服务模块、电子白板模块、文字聊天模块。用户管理模块用户登录、用户注册/注销、获取用户数据;当用户成功与服务器连接时,创建并保存用户session数据;当用户状态改变时,更新用户session数据;
会议室管理模块获取客户端连接请求的ID并创建RoomClient数据;根据会议室RoomID获取会议室用户列表;获取用户视频流的Broadcastld,并根据该ID进行发布本地视频流和播放其他用户的视频流;会议室创建/删除,更新会议室配置。文件服务模块调用FileExplorerUploadHandler Servlet来实现文件上传到服务器上,并调用FileProcessor来实现文档转换功能,将文档和图片分别转换成swf和jpg格式,进而在电子白板上共享;提供文件下载功能。电子白板模块实现画笔、文字、色彩、图形等各种涂鸦;实现Word、PPT、PDF、图片多种文档协同播放浏览及同步翻页显示;实现电子白板导出功能。文字聊天模块实现会议室内文字互动,并支持私聊。参照图I所示,客户端采用RIA技术编译成Flash,客户端通过RTMP协议与流媒体服务器Red5进行音视频及数据对象的传输。在网络状况一般的情况下,用户通过IP PBX建立语音会议,IP PBX通过PSTN实现音频交互,视频流则通过流媒体服务器在Internet上传输。Red5流媒体服务器主要任务是(I)获取Flash客户端向指定Scope (如房间)连接请求,并调用ApplicationAdapter对连接进行处理。(2)建立与数据库服务器的连接并创建数据库,完成数据库的添加、查询、更新及删除操作,如用户登录验证,用户注册/注销,创建房间等。(3)完成用户视频流的创建、播放及发布。(4)实现客户端与服务器端之间函数的相互调用。参照图2所示,Stream ID用来标志用户与Red5服务器之间的连接,服务器端通过 IConnection. getClient. getID()获取连接的 ID。服务器端把 Stream ID 作为 Key值,从客户端列表中获取RoomClient对象。同时,也可以根据根据该ID获取该连接所在的Scope,进去获取连接到该Scope的所有连接。User ID标志客户端登陆用户,根据该ID可以获取当前登陆用户的用户名、密码、访问权限及最近登陆时间等信息。Room ID标志当前客户端所在房间的ID,根据此ID可以获取进入到房间的客户端列表。Broadcast ID标志客户端视频流,用户向服务器端申请Broadcast ID,然后根据该ID向服务器发布本地本地视频流,同时其他客户端可以实时播放该ID所代表的视频流。Public SID在客户端第一次连接时创建并保存在客户端,当客户端重新发起连接时,该ID保持不变,即服务器端新创建的客户端对象使用的是重新连接前客户端保存的Public SID。参照图3所示,首先客户端创建RtmpConection对象,调用connect ()函数向Main Scope发起连接。若连接超时失败,客户端重新建立连接。当连续尝试三次连接都失败后,停止连接。若该连接成功后,服务器端ScopeApplicationAdapter对象作为Scope的Handler自动调用roomJoin()来创建RoomClient。客户端通过调用远程服务器的函数getSessionData()在服务器端创建Session数据,并把Session ID作为响应返回客户 端。客户端用户输入用户名及密码,服务器端经后台数据库验证成功后更新Session数据及RoomClient对象,同时把User对象作为响应返回客户端,客户端跳转系统主界面。当用户进入Room Scope时,客户端断开与Main Scope的连接,并发起向RoomScope的连接。客户端把本地保存的User ID,Session ID变量作为参数来调用服务器端的函数setUsernameReconnect ()来更新服务器端保存的Session数据及重新建立连接后新创建的RoomClient对象。重新连接成功后,客户端向服务器发送Room ID,服务端把该ID保存在RoomClient对象中,同时把当前会议室的客户端列表返回给客户端。客户端用户向服务器端申请Broadcast ID,用来向服务器发布本地视频流。参照图4所示,当服务器端接受到客户端进入会议室的消息后,其处理过程如下 服务器端创建RoomStatus对象,该对象作为服务器端的响应返回给客户端。然后
获取当前连接的ID,并以该ID作为Key值从全局变量ClientList中获取该连接对应的RoomClient,同时把从客户端传来的RoomID保存在RoomClient对象中,再把更新过的RoomClient对象重新保存在ClientList中。判断该房间是否已满,若是,将RoomStatus对象的roomFull字段置为true,直接返回RoomStatus对象到当前客户端。若否,则根据RoomID获取该房间内所有成员的客户端列表,然后调用函数IConection. getScope O .getConnections O 获取连接到该 Scope (Room)的所有 Connections,依次处理 Connections的每一个连接,若该连接是为当前客户端连接,则继续处理下一个连接,否则,把当前RoomClient对象作为参数,调用客户端的addNewUser方法,通知该连接对应的客户端有新成员进入。处理结束后,将RoomStatus对象的ClientMap变量置为之前获取的该房间用户的客户端列表,然后返回RoomStatus对象到当前客户端。参照图5所示,Client A首先向服务器申请BroadcastID,此ID标志着服务器端唯一的NetStream。服务器端获取BroadcastID并返回给客户端。客户端选择相应的Cam和Mic作为视频数据和音频数据的发布设备,其中音频数据是可选的,同时客户端将VideoMudio的配置发送到服务器端并保存在对应的RoomClient对象中,服务器将该对象返回给客户端。
客户端配置完成后,通过创建NetStream来发布本地实时视频流。服务器端会自动调用streamPubIishStart ()函数来处理有视频流发布的情况。同时,通知调用客户端的newStream方法来通知Client B有新视频发布,Client B根据Client A的BroadcastID来播放视频流。当Client A关闭NetStream对象,停止发布本地视频视频流时,服务器端会自动调用StreamBroadcastClose ()函数来处理有视频流停止发布的情况,同时,同时,通知调用客户端的closeStream方法来把Client A的视频流停止发布的事件通知ClientB0参照图6所示,用户对电子白板进行操作的前提是获取会议主持人权限,当用户权限是普通用户时,可以申请会议主持人。用户对电子白板操作有两种方式第一,用户直接在利用各种工具直接在电子白板上涂鸦,如画图、画线、添加文本框等各种操作。第二,用户上传如doc、ppt、pdf及图片等格式文件,这些文件首先转换成swf格式,然后在电子白板中播放。 当电子白板内容发生改变时,客户端调用服务器端的函数sendVarsByffhiteboardld ()通知服务器做出同步变化,函数参数为白板对象及白板ID。月艮务器端将用户操作保存下来,然后调用客户端的方法SendVarsToWhiteboardById()来通知其他客户端更新本地电子白板。参照图7所示,首先,用户打开文本聊天视图,然后调用服务器端的函数getRoomChatHistory ()获取当前会议室的聊天记录。服务器端根据当前连接获取RoomID,并以该ID作为key值获取聊天记录返回给客户端。当用户编辑完信息点击发送时,首先调用函数sendMessageWithClienW )将信息发送到服务器端,服务器端保存该信息到聊天记录,同时调用客户端的方法sendVarsToMessageWithClient ()通知其他客户端有新信息。当用户清空该会议室的聊天记录时,首先判断该用户是否为房间主持人,若否,则弹出提示消息,若是,则调用服务器端的函数clearChat ()来清空该会议室的聊天记录。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现音视频分开传输的Web视频会议的方法,其特征在于,包括以下步骤第一步,客户端通过页面来实现底层数据库的创建及初始化、管理员的创建及读取配置文件到数据库,管理员通过后台管理来添加新用户及修改会议室配置; 第二步,会议发起人员通过IP PBX配置语音会议室,当用户连接该语音会议室时会浏览器自动访问视频会议的网址,当网络比较通畅的情况下,该步骤可以省略,音频和视频数据都通过RTMP协议在Internet上传输; 第三步,客户端自动连接到服务器,连接成功后,服务器端为用户创建ID,并根据连接的ID为用户创建RoomClient,用户输入用户名和密码,并根据网络带宽状况选择视频传输质量,有两种模式可选,登录成功后,跳转到视频会议的主界面; 第四步,用户选择会议室,并点击进入,这时,与Red5服务器断开,客户端根据ID作为Scope,重新向服务器发起连接,用户获取连接该Scope的客户端列表,并在VideoContainer中创建NetStream,根据分配的BroadcastID打开房间其他用户发布的视频流,当用户成功进入该会议室后,向服务器端申请BroadcastID,并发布本地视频流到服务器端,同时,服务器端会让连接到该Scope的其他连接调用客户端的addNewUser方法,通知其他用户同步更新会议成员列表及创建VideoContainer来打开新成员的视频流; 第五步,用户使用电子白板及文字聊天进行互动,当用户在电子白板上涂鸦或者上传文档到白板上播放时,客户端会调用服务器端的函数,把白板对象上传到服务器端,服务器端会调用客户端的方法,通知其他客户端的电子白板做出同步变化,当用户发送文本信息时,首先调用函数将信息发送到服务器端,服务器端保存该信息到聊天记录,同时调用客户端的方法通知其他客户端有新信息; 第六步,会议接受后,用户断开与该Scope的连接,并重新连接到主界面,当用户关闭浏览器时,删除用户的session数据,同时,用户挂机退出音频会议。
全文摘要
本发明公开了一种实现音视频分开传输的Web视频会议的方法,包括以下步骤客户端通过页面来实现底层数据库的创建及初始化、管理员的创建及读取配置文件到数据库;会议发起人员通过IPPBX配置语音会议室;Flash客户端自动连接到服务器;用户选择会议室;用户使用电子白板及文字聊天进行互动;会议接受后,用户断开与该Scope的连接,并重新连接到主界面。本发明提供了一种基于Web的视频会议系统,用户无需在本地安装客户端软件,只需有浏览器支持即可实现在线视频会议,视频会议系统采用流媒体服务器作为视频服务器,不仅能够实时视频播放,还能够实现电子白板、文件共享、文字聊天附加功能,丰富了用户的交互方式。
文档编号H04L29/06GK102801770SQ20121005596
公开日2012年11月28日 申请日期2012年3月6日 优先权日2012年3月6日
发明者裴文江, 朱光辉, 王开, 孙庆庆, 杨洋, 詹金狮, 张书强, 张毅峰 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1