著录项信息
专利名称 | 一种电视墙服务器和录播服务器的远程截包方法 |
申请号 | CN201110437359.1 | 申请日期 | 2011-12-23 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2012-05-09 | 公开/公告号 | CN102447878A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04N7/15 | IPC分类号 | H;0;4;N;7;/;1;5;;;H;0;4;N;2;1;/;6;4;3;;;H;0;4;N;2;1;/;6;4;7查看分类表>
|
申请人 | 南京超然科技有限公司 | 申请人地址 | 江苏省南京市建邺区云龙山路80号天泽星网大楼5楼C区
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 南京超然科技有限公司 | 当前权利人 | 南京超然科技有限公司 |
发明人 | 李宾;袁庆丰;窦志勇 |
代理机构 | 南京天翼专利代理有限责任公司 | 代理人 | 汤志武 |
摘要
一种电视墙服务器和录播服务器的远程截包方法,将网络截包服务器置于视频会议控制器的输出与局域网输入之间,所有进出视频会议控制的网络包都通过网络截包服务器。在电视墙服务器和录播服务器中运行一个客户端模块,客户端模块通过HTTP请求指令向网络截包服务器设置过滤条件,网络截包服务器基于不同的截包过滤条件过滤出不同的音视频输出流,并将这些输出流通过局域网发送到相应的客户端模块,客户端模块通过API接口将接受到音视频流发送给电视墙服务器或录播服务器应用程序。本发明避免了电视墙服务器和录播服务器的实现复杂度,并且不占用视频会议控制器的任何资源,具有会议协议无关性、占用资源少、图像质量优、实时性好等特点。
1.一种电视墙服务器和录播服务器的远程截包方法,视频会议终端由视频会议控制器通过局域网向电视墙服务器和录播服务器传送媒体流,其特征在于:在局域网与视频会议控制器之间设置网络截包服务器,网络截包服务器经局域网向电视墙服务器和录播服务器传送媒体流,包括以下步骤:
(1)客户端模块作为HTTP客户端,向网络截包服务器发送包含连接信息的HTTP连接请求报文,网络截包服务器根据客户端模块的连接请求,与客户端模块建立UDP连接,连接建立后将一直保持连接状态;
1)如果客户端模块连续发送握手报文的数目超过规定的阀值或在规定的时间内没有收到网络截包服务器返回的握手报文,客户端模块主动关闭UDP长连接;
2)如果网络截包服务器在规定的时间内没有收到客户端模块发送的握手报文,网络截包服务器主动关闭UDP长连接;
(2)客户端模块与网络截包服务器连接建立后,客户端模块向网络截包服务器发送包含截包过滤条件的HTTP截包请求报文,截包过滤条件中包含网络包的源IP地址以及源端口,其中,客户端模块随时向网络截包服务器发送HTTP请求停止截包任务,网络截包服务器不主动停止截包任务;
(3)网络截包服务器收到客户端模的截包请求后,启动一个截包任务,每一个截包任务都是以独立的线程方式运行,截包服务器根据截包请求中的过滤条件截取相应的网络包,同时并将全部的网络包通过步骤(1)中建立的UDP长连接发送到客户端模块。
2.根据权利要求1所述的电视墙服务器和录播服务器的远程截包方法,其特征在于: 客户端模块包含用于向网络截包服务器发送和接受HTTP报文信息的通讯模块、用于接收网络截包服务器发送的网络包并通过API发送至电视墙服务程序或录播服务器程序的截包存储模块以及用于定时向网络截包服务器发送握手报文以保持UDP长连接不中断的保活模块。
3.根据权利要求1所述的电视墙服务器和录播服务器的远程截包方法,其特征在于: 网络截包服务器包含vmediaxpcap网络截包库及截包控制模块,Vmediaxpcap网络截包库是网络截包服务器内网络数据包捕获模块,它是一个独立于操作系统的位于用户层用于包捕获的API接口,截包控制模块负责响应客户端模块对截包服务器的截包指令和截包过滤条件,并将过滤条件通过API设置给vmediaxpcap网络截包库,vmediaxpcap网络截包库根据过滤条件进行截包过滤;截包控制模块设有与客户端模块对应的通讯模块、截包管理模块及保活模块,通讯模块接收客户端通讯模块发送来的HTTP报文信 息并返回应答消息给客户端的通讯模块,截包管理模块根据客户端的发送来的HTTP远程截包请求启动截包任务,并将截取的全部网络包通过UDP方式发送到客户端的接收端口,保活模块接受客户端保活模块发来的握手报文后返回一个握手报文给客户端的保活模块以保持UDP长连接不中断。
4.根据权利要求3所述的电视墙服务器和录播服务器的远程截包方法,其特征在于:
vmediaxpcap网络截包库包括网络分接头和数据过滤器,网络分接头从网络设备驱动程序中收集数据拷贝,过滤器决定是否接受该数据包,Vmediaxpcap网络截包库利用BPF算法对网络接受到的链路层数据包进行过滤,BPF算法的基本思想是在有BPF监听的网络中,网卡驱动将接受的数据包复制一份交给BPF过滤器,过滤器根据用户定义的规则决定是否接收此数据包以及需要拷贝该数据包的哪些内容,然后将过滤后的数据给与过滤器相关联的上层应用程序。
5.根据权利要求1或2或3或4所述的电视墙服务器和录播服务器的远程截包方法,其特征在于:网络截包服务器在截包过程中引入了告警机制,在网络截包服务器检测到有错误发生时,主动发消息给客户端模块,要求重新发送一遍或者网络截包服务器检测到资源紧张时主动发消息给客户端模块要求暂停截包任务。
一种电视墙服务器和录播服务器的远程截包方法\n技术领域\n[0001] 本发明涉及一种用于视频会议系统的电视墙服务器和录播服务器的远程截包方法,属于电视/视频通信技术领域。\n背景技术\n[0002] 在现阶段的视频会议网络架构中,视频会议终端媒体流都直接发送至视频会议控制器,电视墙服务器和录播服务器都必须通过视频会议控制器获取到会议终端的媒体流,这种方式不仅占用视频会议控制器的资源,同时还需要多厂家的视频会议控制器提供支持接口,并且录播服务器和电视墙服务器也需要开发不同的接口模块以适应会议控制器。因此,现有的获取多路音视频技术不能满足新时代大容量、灵活、低成本的应用需求.。\n发明内容\n[0003] 随着视频技术的不断发展,为了实时传送多路音视频并将其呈现给终端用户,本发明的目的是提供一种电视墙服务器和录播服务器的远程截包方法,以更加有效的获取多路音视频源。\n[0004] 本发明的上述目的是这样实现的:一种电视墙服务器和录播服务器的远程截包方法,视频会议终端由视频会议控制器通过局域网向电视墙服务器和录播服务器传送媒体流,其特征在于:在局域网与视频会议控制器之间设置网络截包服务器,网络截包服务器经局域网向电视墙服务器和录播服务器传送媒体流,包括以下步骤:\n[0005] (1)客户端模块作为HTTP客户端,向网络截包服务器发送包含连接信息的HTTP连接请求报文,网络截包服务器根据客户端模块的连接请求,与客户端模块建立UDP连接,连接建立后将一直保持连接状态;\n[0006] 1)如果客户端模块连续发送握手报文的书面超过规定的阀值或在规定的时间内没有收到网络截包服务器返回的握手报文,客户端模块主动关闭UDP长连接;\n[0007] 2)如果网络截包服务器在规定的时间内没有收到客户端模块发送的握手报文,网络截包服务器主动关闭UDP长连接;\n[0008] (2)客户端模块与网络截包服务器连接建立后,客户端模块向网络截包服务器发送包含截包过滤条件的HTTP截包请求报文,截包过滤条件中包含网络包的源IP地址以及源端口,其中,客户端模块随时向网络截包服务器发送HTTP请求停止截包任务,网络截包服务器不主动停止截包任务;\n[0009] (3)网络截包服务器收到客户端模的截包请求后,启动一个截包任务,每一个截包任务都是以独立的线程方式运行,截包服务器根据截包请求中的过滤条件截取相应的网络包,同时并将全部的网络包通过步骤(1)中建立的UDP长连接发送到客户端模块; [0010] 所述客户端模块包含用于向网络截包服务器发送和接受HTTP报文信息的通讯模块、用于接收网络截包服务器发送的网络包并通过API发送至电视墙服务程序或录播服务器程序的截包存储模块以及用于定时向网络截包服务器发送握手报文以保持UDP长连接不中断的保活模块。\n[0011] 所述网络截包服务器包含vmediaxpcap网络截包库及截包控制模块,Vmediaxpcap网络截包库是网络截包服务器内网络数据包捕获模块,它是一个独立于操作系统的位于用户层用于包捕获的API接口,截包控制模块负责响应客户端模块对截包服务器的截包指令和截包过滤条件,并将过滤条件通过API设置给vmediaxpcap网络截包库,vmediaxpcap网络截包库根据过滤条件进行截包过滤;截包控制模块设有与客户端模块对应的通讯模块、截包管理模块及保活模块,通讯模块接收客户端通讯模块发送来的HTTP报文信息并返回应答消息给客户端的通讯模块,截包管理模块根据客户端的发送来的HTTP远程截包请求启动截包任务,并将截取的全部网络包通过UDP方式发送到客户端的接收端口,保活模块接受客户端保活模块发来的握手报文后返回一个握手报文给客户端的保活模块以保持UDP长连接不中断。\n[0012] vmediaxpcap网络截包库包括网络分接头和数据过滤器,网络分接头从网络设备驱动程序中收集数据拷贝,过滤器决定是否接受该数据包,Vmediaxpcap网络截包库利用BPF算法对网络接受到的链路层数据包进行过滤,BPF算法的基本思想是在有BPF监听的网络中,网卡驱动将接受的数据包复制一份嫁给BPF过滤器,过滤器根据用户定义的规则决定是否接收此数据包以及需要拷贝该数据包的哪些内容,然后将过滤后的数据给与过滤器相关联的上层应用程序。\n[0013] 网络截包服务器在截包过程中引入了告警机制,在网络截包服务器检测到有错误发生时,主动发消息给客户端模块,要求重新发送一遍或者网络截包服务器检测到资源紧张时主动发消息给客户端模块要求暂停截包任务。\n[0014] 本发明的优点及显著效果:\n[0015] 本发明将网络截包服务器置于视频会议控制器的输出与局域网输入之间,所有进出视频会议控制的网络包都通过网络截包服务器。在电视墙服务器和录播服务器中运行一个客户端模块,客户端模块通过HTTP请求指令向网络截包服务器设置过滤条件,一台网络截包服务器可最多同时支持4个客户端模块,网络截包服务器基于不同的截包过滤条件过滤出不同的音视频输出流,并将这些输出流通过局域网发送到相应的客户端模块,客户端模块通过API接口将接受到音视频流发送给电视墙服务器或录播服务器应用程序。本发明避免了电视墙服务器和录播服务器的实现复杂度,并且不占用视频会议控制器的任何资源,具有会议协议无关性、占用资源少、图像质量优、实时性好等特点。\n附图说明\n[0016] 图1 是本发明方法的方框图;\n[0017] 图2 是网络截包服务器中vmediaxpcap的流程图;\n[0018] 图3 是网络截包服务器中缓冲器的工作原理图;\n[0019] 图4 是本发明方法的流程图。\n具体实施方式\n[0020] 参看图1,本发明将网络截包服务器置于视频会议控制器的输出与局域网输入之间,所有进出视频会议控制的网络包都通过网络截包服务器。在现有电视墙服务器和录播服务器中运行一个客户端模块,客户端模块通过HTTP请求指令向网络截包服务器设置过滤条件,一台网络截包服务器可最多同时支持4个客户端模块,网络截包服务器基于不同的截包过滤条件过滤出不同的音视频输出流,并将这些输出流通过局域网发送到相应的客户端模块,客户端模块通过API接口将接受到音视频流发送给电视墙服务器或录播服务器应用程序。\n[0021] 参看图2,Vmediaxpcap的包捕获机制就是在数据链路层加一个旁路处理,当一个数据包到达网络接口时,vmediaxpcap首先利用已经创建的Socket从链路层驱动程序中获得该数据包的拷贝,再通过Tap函数将数据包发给BPF过滤器。BPF过滤器根据用户已经定义好的过滤规则对数据包进行逐一匹配,匹配成功则放入内核缓冲区,并传递给用户缓冲区,匹配失败则直接丢弃。如果没有设置过滤规则,所有数据包都将放入内核缓冲区,并传递给用户层缓冲区。\n[0022] Vmediaxpcap中的过滤器既可以放在用户空间执行也可以放在内核空间执行,但是由于数据从内核空间想用户空间拷贝要消耗大量的CPU周期。为了减少从内核空间向后用户空间拷贝的数据包的数量,提高捕获数据包的效率,最好把过滤器放在内核级。内核过滤的优势在低速网络下表现不明显,但是在高速网络下是非常突出的。BPF就是内核级过滤器。通过BPF过滤器的数据包会被放入内核缓冲器,没有通过的数据包直接被丢弃。\nVmediaxpcap在内核中使用两个缓冲器:分别是缓冲器和保持缓冲器。存储缓冲器用来保存通过过滤器的数据包,而保持缓冲器则用来向用户提供数据。Vmediaxpcap在内核和用户层使用的缓冲器的大小为可配置的循环缓冲器,并采用mmap系统调用,完成数据包从内核到用户层的传递。缓冲器工作原理图如图3,说明如下:\n[0023] 1、循环缓冲器在捕获数据包的句柄创建是被分配,在器销毁是被释放。\n[0024] 2、循环缓冲器的大小是可配置的,但它能得到的最大空间和截包服务器的系统版本有关。\n[0025] 3、Vmediaxpcap把得到的可用空间分成多个大小相等的数据块,每个数据块被分配一个指针,通过指针唯一的标识他们。数据块的个数取决于截包服务器系统提供的存储指针的空间大小。这些数据块最后又被分成多个大小相等的更小的数据块。\n[0026] 4、当捕获到的数据包通过过滤器后,就直接调用写指针吧该数据写到循环缓冲器中的一个帧中,然后包写指针向前移动。\n[0027] 5、用户程序在访问循环缓冲器之前,必须通过调用mmap来获得执行缓冲器的一个读指针,通过使用该指针对循环缓冲器中的数据进行读取,读完数据后把指针向前移动。\n[0028] 6、每个帧都有一个状态标识,如果它的值是0标识这个帧中的数据是内核新写入的,用户程序可以读取。如果是1表示用户已经读完该帧中的数据,内核可以写入新的数据了。\n[0029] 7、通过过滤器的数据直接覆盖那些已经被用户程序读过的数据。如果发现已经没有可用的空间,所有帧中的数据,用户程序都没有读过,则把新到达的数据丢弃。\n[0030] 本发明中,网卡中的次数也是影响捕获数据包性能的一个关键因素,每次中断的现场保护和恢复都要消耗大量的CPU周期。对于这个问题目前解决的方法是通过POLL的方法轮询数据,来减少中断的次数。\n[0031] 参看图4, 电视墙服务器和录播服务器作为HTTP客户端,向网络截包服务器发送包含连接信息的HTTP连接请求报文,网络截包服务器根据客户端模块的连接请求,与客户端模块建立UDP连接,连接建立后将一直保持连接状态;如果客户端模块连续发送握手报文的书面超过规定的阀值或在规定的时间内没有收到网络截包服务器返回的握手报文,客户端模块主动关闭UDP长连接;如果网络截包服务器在规定的时间内没有收到客户端模块发送的握手报文,网络截包服务器主动关闭UDP长连接;客户端模块与网络截包服务器连接建立后,客户端模块向网络截包服务器发送包含截包过滤条件的HTTP截包请求报文,截包过滤条件中包含网络包的源IP地址以及源端口,其中,客户端模块随时向网络截包服务器发送HTTP请求停止截包任务,网络截包服务器不主动停止截包任网络截包服务器收到客户端模的截包请求后,启动一个截包任务,每一个截包任务都是以独立的线程方式运行,截包服务器根据截包请求中的过滤条件截取相应的网络包,同时并将全部的网络包通过建立的UDP长连接发送到客户端模块;电视墙服务器和录播服务器从客户端模块接受网络包,然后针对这些网络包进行相应的业务处理。
法律信息
- 2013-07-03
- 2012-06-27
实质审查的生效
IPC(主分类): H04N 7/15
专利申请号: 201110437359.1
申请日: 2011.12.23
- 2012-05-09
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |