一种应用层组播视频会议系统实现方法

文档序号:7743799阅读:252来源:国知局

专利名称::一种应用层组播视频会议系统实现方法
技术领域
:本发明涉及一种组播视频会议系统实现方法,尤其涉及一种应用层组播视频会议系统实现方法。
背景技术
:早期视频会议系统的发展经历了从拨号群组视频会议系统到ISDN桌面视频会议系统,再到LAN上的视频会议系统的过程。之后在以上技术的基础上,基于Internet的多媒体视频会议系统逐渐发展起来。随着IP组播技术的应用,目前应用较多的是基于IP组播网络的视频会议系统,利用IP组播技术可构建具有组播能力的网络。组播允许路由器一次将数据包复制到多个通道上,降低了网络带宽要求,有效节省传输带宽,这对于需要在多点之间传输流媒体的视频会议尤其具有重要意义。同时,IP组播按照路由协议形成路由器组成的组播树向组成员发送组播数据,不需要MCU(MultipointControlUnit,多点处理单元),通过软件来实现视频会议终端任意多点的视频会议功能,大大节省了系统成本。虽然IP组播视频会议系统技术具有较高的效率,可以保证每条链路都不会有冗余数据,但是由于IP组播需要路由器的支持以及高层功能不易实现等原因,其推广使用受到了很大的限制。应用层组播是指在网络协议的应用层实现的组播。它与IP组播最大的区别在于,应用层组播的主要功能在主机上实现(也被称为EndSystem,也即端系统,区别于路由器)实现的,即由主机来进行数据的复制和转发。应用层组播在应用层形成一个逻辑网络利用路由层的单播方式向组成员进行组播。同时相比IP组播,应用层组播在网络拥塞控制和安全等问题方面有着优秀表现。在这种情况下,应用层组播视频会议系统的研究愈加重要。
发明内容本发明的目的在于针对现有技术的不足,提供一种应用层组播视频会议系统实现方法。本发明的目的是通过以下技术方案来实现的一种应用层组播视频会议系统实现方法,应用层组播视频会议系统主要由计算机、视频处理模块、音频处理模块、会议管理和控制模块、声像同步控制模块和Spines应用层覆盖网络平台组成。所述视频处理模块、音频处理模块、会议管理和控制模块、声像同步控制模块分别与计算机相连。所述视频处理模块、声像同步控制模块和音频处理模块依次相连,并分别与Spines应用层覆盖网络平台相连。所述应用层组播视频会议系统实现方法主要包括以下步骤(1)系统各模块初始化包括计算机、视频处理模块、音频处理模块、会议管理和控制模块、声像同步控制模块和Spines应用层覆盖网络平台之间的相互连接,以及各模块的启动并初始化。(2)视频信号处理与传输视频信号的处理与传输主要由视频处理模块实现功能。具体步骤包括视频信号的采集和播放,视频信号的压縮/解压縮,视频信号的发送和接收三个步骤。(3)音频信号处理与传输音频信号的处理与传输主要由音频处理模块实现功能。具体步骤包括音频信号的采集和播放,音频信号的压縮和解压縮,音频信号的发送和接收。(4)声像同步控制发送终端把视频流和音频流分开直接传给接收终端,即两种媒体流没有混合起来,而分别走不同的网络虚拟通道;当网络畅通时,即网络带宽能保证音、视频流按照预定的速率传输,多媒体数据基本没有丢失,同步问题主要利用音、视频RTP包头的时间戳字段来解决。当网络拥塞时,音、视频流不能按原定的传输速率传送,音、视频信息包丢失严重的情况,此时由控制模块分析传递的报文信息,根据实时的网络状况,控制多媒体数据的发送数据量,及时有效地实现同步。(5)Spines应用层覆盖网络平台实现组播Spines分为两个层次用户层和覆盖网络节点层。用户程序要使用Spines覆盖网络提供的服务,首先连接到最近的节点,通过覆盖网络向其他的用户发送数据。当节点接收到来自用户或者其他节点的数据时,就选择适当的路由转发数据。经过逐跳传输,数据到达目的节点,再根据数据包的端口将数据提交给用户程序。在Spines应用层覆盖网络平台中,节点之间的连接通过各自协议管理和传播拓扑信息和组播信息,每个节点都维护着整个覆盖网络的结构信息。本发明的有益效果是,本发明应用层组播视频会议系统可直接通过计算机实现系统应用与数据发送接收,并且本系统中的应用层组播技术使系统具有很好的网络灵活性,同时应用层组播便于实现和推广,只需改变端系统,而不需要对路由器进行任何修改;应用层组播便于针对特定应用进行优化,可以针对不同的应用使用不同的实现方案,而不必象IP组播那样必须统一到一个模型中。图1是系统模块图;图2是Directshow整体构架图3是音频处理流程图4是Spines软件结构图。具体实施例方式如图1所示,本发明应用层组播视频会议系统主要由计算机、视频处理模块、音频处理模块、会议管理和控制模块、声像同步控制模块和Spines应用层覆盖网络平台组成。视频处理模块、音频处理模块、会议管理和控制模块、声像同步控制模块分别与计算机相连;视频处理模块、声像同步控制模块和音频处理模块依次相连,并分别与Spines应用层覆盖网络平台相连。其中,计算机实现人机交互,并包括提供给用户的操作界面。视频处理模块负责视频信息的捕获、压縮、解压縮和回放等功能。音频处理模块负责音频信息的捕获、压縮、解压縮和回放等功能;会议管理和控制模块完成整个会议进程的管理和控制。声像同步控制模块提供视频流传输质量的保证,通过调整视频信息发送率,使视频信息在带宽动态变化的4网络也能有效地传输。Spines应用层覆盖网络平台,搭建应用层组播平台,提供应用层组播技术支持,并与底层网络相连接。计算机模块由服务器和客户机组成。服务器的组成为一台高性能计算机与网卡。客户机组成为普通计算机,音箱,声卡,网卡,摄像头,麦克风和客户端运行环境等。各设备作用如下服务器端设备高性能计算机运行服务器程序;网卡连接因特网,实现基本的网络通信;客户端设备普通台式机;网卡连接因特网,实现基本的网络通信;声卡将麦克风接入声卡,通过声卡采集参会者的音频媒体;音箱播放所请求的音频;摄像头用于捕获参会者的视频媒体;麦克风用于声音输入。视频处理模块的功能包括视频的采集和播放,视频的压縮/解压縮,视频的发送和接收。如图2所示,系统采用了MicrosoftWindows平台上的Direc:tsh0W流式媒体体系结构,它提供媒体流的高质量的捕捉与回放。与通常所采用的VideoForWindowsAPI视频采样相比;Directshow的硬件效率更高,可自动使用硬件加速,节省系统资源。对视频信号的压縮,系统采用了H.263标准实现压縮,H.263是H.323标准推荐使用的视频编码/解码器之一,H.263是目前较先进的网络压縮算法,具有中等的压縮质量,且压縮算法简单、压縮快速和压縮比高。为了适应Internet带宽的动态变化,增强系统对网络环境的适应性,系统在压縮算法上作了一些改进发送端周期性地分析各个接收终端的接收状况,获得当前网络的传输速率,以此调整压縮算法的各个参数,从而获得最好的帧率和质量。视频的传输由视频通信进程完成。视频处理的设计是基于Directshow平台的,FilterGraph在Directshow中已经定义好了,所以只需要设计好自己的Fi1ter,然后放入Fi1terGr即h中,让其控制运行,实现需要的功能。对于视频模块需要两个链路A视频采集一视频压縮一视频数据一组播发送B视频数据一组播接收一视频解压一视频播放在Directshow中实现一个视频捕获预览程序大概可以分为以下几个步骤A创建一个FilterGr即hManager实例,并通过调用IGr即hBuilder接口引出MediaControl,IVideowindow,MediaEventEx三个接口。应用程序通过调用Videowindow接口设置视频窗口的大小和位置;通过设定控制按钮调用MediaControl接口实现视频播放的开始和停止。B创建一个C即tureGr即h实例,得至ljIC即tureGr即hBuilderZ接口,FilterGraphManager的IGraphBuilder接口相关联,初始化FilterGraph。C运用枚举系统设备方法,列举所有使用的视频捕获设备,用户可以选择任一设备,将其对应的C即tureFilter加入到初始化后的FilterGr即h中。D设计使用的C即tureFilter只有一个C即tureOutputPin,FilterGr即hManager会自动接入一个SmartTeeFilter提供PreviewPin,以便实现在预览视频和存储到文件同时进行。网络传输部分的主要工作是编程实现组播通信,基本步骤如下A创建socketB绑定本地地址和端口C加入组播组D设置TTL生命周期E发送数据到组播地址F从组播组中接收数据音频处理模块的功能包括音频的采集和播放,音频的压縮和解压縮,音频的发送和接收。Microsoft公司的WindowsMultimedia为应用程序加入了音频和视频的支持,以实现多媒体功能。在系统中,实现音频采集和压縮/解压时使用了MultimediaAudio中的wave函数集禾口ACM(AudioCompressionManager),其中音频压縮模块采用MicrosoftG.723.1CODEC,G.723是H.323标准推荐使用的音频编码/解码器之一;实现音频混音和回放时使用了DirectX的组件DirectSound。音频的传输由音频通信进程完成。系统的音频处理模块的主要流程如图3所示。整个模块将它封装在一个DLL文件中,以下介绍几个设计中比较重要的类①CWaveln,它是一个封装了Waveln即i的类,它主要的功能是从设备中采集相应的信息数据流并将数据封装成一个自定义的结构帧。②CWaveout,对应于CWaveln,也是一个封装了Wavelnapi的类,它的主要功能是把网络收集到的数据帧在设备中播放出来。③CSortData,它的作用是管理数据,调整乱序包的顺序。CUdpsocket继承于CAsyncsocket,用于将数据发送到服务器。CRecsocket也继承于CAsyncsocket,用于触发其0nReceive事件来处理到来的数据,如果标识为服务器就将数据转发出去,为客户端则原地播放。接下来将设计好的各个功能类,引出到接口类中,声像同步控制是所有视频会议系统必需解决的关键技术和技术难点。根据系统的特点,提出了相应的解决方案。在该系统中,发送终端把视频流和音频流分开直接传给接收终端,即两种媒体流没有混合起来,而分别走不同的网络虚拟通道。由于视频数据量很大,分开音、视频数据传输的处理方法可以在带宽较窄的网络上保证音频数据的平滑输送,但其缺点是声像不同步的问题严重。在解决同步问题时,作者根据不同的网络状况使用相应的解决措施。网络运行状况有两种情况一是网络畅通,即网络带宽能保证音、视频流按照预定的速率传输,多媒体数据基本没有丢失;二是网络拥塞,音、视频流不能按原定的传输速率传送,音、视频信息包丢失严重的情况。前一种情况,同步问题主要利用音、视频RTP包头的时间戳字段来解决。后者由QoS控制模块分析RTCP传递的报文信息,根据实时的网络状况,控制多媒体数据的发送数据量,及时有效地实现同步。系统由软件实现会议管理器的功能,会议管理贯穿着会议的整个过程,包括会议的发起、结束,会员的入会、离会,身份认证及发言权控制,议题的产生及管理等。模块有六个组成部分会员信息库、发言处理、过程管理、信息查询、注册入会、离会管理。所有与会人员的活动信息被组织成数据库结构存储在每个与会结点中,由会议管理器产生和动态维护。会议管理器产生的会议管理信息按RTCP协议组包,由UDP通过会议管理端口以IPMulticast方式实时传递给所有与会人员。整个会议管理由服务器端的控制器和客户端的控制器协商完成。如图4所示,Spines是一个源代码公开的通用覆盖网络系统,由约翰-霍普金斯大学的分布式网络实验室所建立。Spines分为两个层次用户层和覆盖网络节点层。用户程序要使用Spines覆盖网络提供的服务,首先要连接到最近的节点,这样就可以通过Spines覆盖网络向其他的用户发送数据了。当节点接收到来自用户或者其他节点的数据时,就选择适当的路由转发数据。经过逐跳传输,数据到达目的节点,目的节点根据数据包的端口,把数据提交给用户程序。Spines提供了端到端的可靠传输和不可靠传输,可靠传输使用了类TCP传输模式。如图4所示,采用两层的结构是因为Spines是分布式的网络。节点之间的连接通过Hello协议来管理,节点通过StateFlood协议来传播拓扑信息和多播信息,每个节点都维护着整个覆盖网络的结构信息,而且节点还要处理用户的请求和处理数据,所以Spines覆盖网络不能扩展的很大,一般来说可以扩展到几百个节点。虽然只有几百个节点,但是每个节点可以支持将近一千个用户。这样,两层的结构可以很好的解决扩展性的问题。该系统是基于Spines覆盖网络平台的视频会议系统,它的网络传输基本依托于Spines系统。具体实现步骤分为两步,一是按照一般IP组播系统进行网络传输的设计,二是将Spines系统的对应接口与IP组播时的接口相替换。详细说明如下在IP组播模块设计过程中,系统的应用平台是Windows操作系统,使用的是WinSock规范。系统的开发工具是MicrosoftVisualC++6.0,它提供了MFC类CAsyncSocket类,该类封装了WindowsSocketAPI,为Windows程序员提供了一个面向对象的WindowsSocket抽象,大大方便了程序员在C++这种面向对象的开发环境里使用WinSock规范开发基于TCP/IP的通信软件。系统所有通信进程对象都是从CAsyncSocket类派生的,包括视频通信进程;音频通信进程;音像传输同步进程;会议管理通信进程。在TCP/IP协议组中,网络层提供了三种IP数据包传送方式一是8-IP点对点(IPUnicast)方式;二是广播方式(IPBroadcast);三是组播方式(IPMulticast)。系统采用了IP组播机制来传送多媒体数据。系统用了WindowsSocket2.0标准的组播专用API编写组播通信模块。前面提到的系统的几个通信进程中,凡是基于UDP的都是组播通信进程,系统的组播通信进程包括视频通信进程CVideoSocket(),音频通信进程CSoundSocket(),视频通信质量反馈进程CVideoFeedBackSocket()以及会议管理器的三个进程CManageSocket、CSpeakCtrlSocket和CApplySpeakSocket等一共七个进程组成。它们都从MicrosoftVisualC++6.0的MFC中CAsyncSocket类继承。IP组播模块是TCP/IP协议的应用通信系统,它的网络层和传输层基本依托于TCP/IP,是TCP/IP协议网络层和传输层的具体应用。系统的网络层采用了TCP/IP的IGMP协议,而传输层主要用UDP协议。该系统遵照H.323建议,音、视频数据用UDP来传输。但高效率的UDP并不考虑可靠性,因而简单地用UDP替代TCP并不足以使多媒体程序在8-分组网上运行,还需要使用一些基于UDP之上的协议,对通过UDP传输的数据进行重排和补偿等整理操作。在系统中,音频和视频数据遵照RTP报文格式打包,而且设计各自的RTP扩展头,配合完成适合该系统特点的打包、传输、解包方案。另外,在RTP的设计中,用RR报文提供视频传输质量反馈,用会员信息SDES报文提供会议管理信息,而与会者退出会议时使用了BYE报文知会其他会员。将Spines覆盖网络平台接入视频会议系统,具体接入时,用Spines中的Spines—lib库文件将对应端口函数与Windows下的函数相互替换,即可将Spines接入视频会议系统。SpineS_lib库文件中的SPINES端口与IP组播模块对应接口对照如下<table>tableseeoriginaldocumentpage8</column></row><table>在系统上实现基于蓝牙技术的温度多点监控方法,主要包括以下步骤1)系统各模块初始化包括计算机、视频处理模块、音频处理模块、会议管理和控制模块、声像同步控制模块和Spines应用层覆盖网络平台之间的相互连接,以及各模块的启动并初始化。2)视频信号处理与传输视频信号的处理与传输主要由视频处理模块实现功能。具体步骤包括视频信号的采集和播放,视频信号的压縮/解压縮,视频信号的发送和接收三个步骤。视频信号的采集和播放采用了流式媒体技术,它提供媒体流的高质量的捕捉与回放。视频信号的压縮/解压縮,采用了压縮标准实现。同时本方法在压縮算法上作了一些改进发送端周期性地分析各个接收终端的接收状况,获得当前网络的传输速率,以此调整压縮算法的各个参数,从而获得最好的帧率和质量。视频信号的发送和接收又由以下几个步骤实现创建端口;绑定本地地址和端口;加入组播组;设置播放周期;发送数据到组播地址;从组播组中接收数据。3)音频信号处理与传输音频信号的处理与传输主要由音频处理模块实现功能。具体步骤包括音频信号的采集和播放,音频信号的压縮和解压縮,音频信号的发送和接收。音频信号的采集和播放通过多媒体播放应用程序来实现。在系统中,音频信号的压縮/解压縮使用了编码函数集与音频编码/解码器;实现音频混音和回放时使用了播放插件。音频的传输由音频通信进程完成。4)声像同步控制在该方法中,发送终端把视频流和音频流分开直接传给接收终端,即两种媒体流没有混合起来,而分别走不同的网络虚拟通道。由于视频数据量很大,分开音、视频数据传输的处理方法是在带宽较窄的网络上保证音频数据的平滑输送,但其缺点是声像不同步的问题严重。在解决同步问题时,根据不同的网络状况使用相应的解决措施。当网络畅通时,即网络带宽能保证音、视频流按照预定的速率传输,多媒体数据基本没有丢失,同步问题主要利用音、视频RTP包头的时间戳字段来解决。当网络拥塞时,音、视频流不能按原定的传输速率传送,音、视频信息包丢失严重的情况,此时由控制模块分析传递的报文信息,根据实时的网络状况,控制多媒体数据的发送数据量,及时有效地实现同止少。5)Spines应用层覆盖网络平台实现组播本方法中的组播技术基于Spines应用层覆盖网络平台来实现。Spines分为两个层次用户层和覆盖网络节点层。用户程序要使用Spines覆盖网络提供的服务,首先连接到最近的节点,通过覆盖网络向其他的用户发送数据。当节点接收到来自用户或者其他节点的数据时,就选择适当的路由转发数据。经过逐跳传输,数据到达目的节点,再根据数据包的端口将数据提交给用户程序。在Spines应用层覆盖网络平台中,节点之间的连接通过各自协议管理和传播拓扑信息和组播信息,每个节点都维护着整个覆盖网络的结构信息。完成前期步骤后,即可将Spines系统的对应接口与原有组播接口相替换实现应用层组播传输。权利要求一种应用层组播视频会议系统实现方法,其特征在于,应用层组播视频会议系统主要由计算机、视频处理模块、音频处理模块、会议管理和控制模块、声像同步控制模块和Spines应用层覆盖网络平台组成。所述视频处理模块、音频处理模块、会议管理和控制模块、声像同步控制模块分别与计算机相连。所述视频处理模块、声像同步控制模块和音频处理模块依次相连,并分别与Spines应用层覆盖网络平台相连。所述应用层组播视频会议系统实现方法主要包括以下步骤(1)系统各模块初始化包括计算机、视频处理模块、音频处理模块、会议管理和控制模块、声像同步控制模块和Spines应用层覆盖网络平台之间的相互连接,以及各模块的启动并初始化。(2)视频信号处理与传输视频信号的处理与传输主要由视频处理模块实现功能。具体步骤包括视频信号的采集和播放,视频信号的压缩/解压缩,视频信号的发送和接收三个步骤。(3)音频信号处理与传输音频信号的处理与传输主要由音频处理模块实现功能。具体步骤包括音频信号的采集和播放,音频信号的压缩和解压缩,音频信号的发送和接收。(4)声像同步控制发送终端把视频流和音频流分开直接传给接收终端,即两种媒体流没有混合起来,而分别走不同的网络虚拟通道;当网络畅通时,即网络带宽能保证音、视频流按照预定的速率传输,多媒体数据基本没有丢失,同步问题主要利用音、视频RTP包头的时间戳字段来解决。当网络拥塞时,音、视频流不能按原定的传输速率传送,音、视频信息包丢失严重的情况,此时由控制模块分析传递的报文信息,根据实时的网络状况,控制多媒体数据的发送数据量,及时有效地实现同步。(5)Spines应用层覆盖网络平台实现组播Spines分为两个层次用户层和覆盖网络节点层。用户程序要使用Spines覆盖网络提供的服务,首先连接到最近的节点,通过覆盖网络向其他的用户发送数据。当节点接收到来自用户或者其他节点的数据时,就选择适当的路由转发数据。经过逐跳传输,数据到达目的节点,再根据数据包的端口将数据提交给用户程序。在Spines应用层覆盖网络平台中,节点之间的连接通过各自协议管理和传播拓扑信息和组播信息,每个节点都维护着整个覆盖网络的结构信息。全文摘要本发明公开了一种应用层组播视频会议系统实现方法,系统主要由计算机、视频处理模块、音频处理模块、会议管理和控制模块、声像同步控制模块和Spines应用层覆盖网络平台组成;系统各模块初始化后、视频信号处理与传输、然后音频信号处理与传输、声像同步控制、最后Spines应用层覆盖网络平台实现组播;本发明可直接通过计算机实现系统应用与数据发送接收,并且本系统中的应用层组播技术使系统具有很好的网络灵活性,同时应用层组播便于实现和推广,只需改变端系统,而不需要对路由器进行任何修改;应用层组播便于针对特定应用进行优化,可以针对不同的应用使用不同的实现方案,而不必象IP组播那样必须统一到一个模型中。文档编号H04L29/06GK101790072SQ20101012553公开日2010年7月28日申请日期2010年3月16日优先权日2010年3月16日发明者刘奇,赵问道申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1