一种实时网络监控系统及其方法

文档序号:7994306阅读:494来源:国知局
专利名称:一种实时网络监控系统及其方法
技术领域
本发明涉及实时网络监控技术,特别是涉及一种基于媒体流动态管理技术和数据库技术的实时网络监控系统及其方法。
背景技术
随着近几年的迅速发展,流媒体技术突飞猛进。目前,针对服务器到客户端或服务器本身的相关技术,比如线程调度算法、突发请求、大规模客户端等待造成的数据风暴问题等的研究已经很充分。从视频源到流媒体服务器之间需要大规模视频源接入管理时,相应的理论和技术研究还比较少见。随着平安城市工程的快速推进,动辄几百路的视频数据可能需要从前端摄像头接入到媒体转发服务器,对前端接入网络的带宽提出了越来越高的要求,同时,视频质量的提高进一步增加了前端接入带宽的压力。对于千兆网络,使用常规设计的流媒体转发技术,几十路监控高清媒体流的接入就能导致前端通道陷入瘫痪。为了提高传输质量,增加监控系统对于前端摄像头的接入容量,就需要增加带宽,增加投资,不利于流媒体技术在监控领域的推广和平安城市的建设。中国专利申请号“200510096082.5”,发明名称“多源流媒体传输QoS控制方法”的专利申请文件中,指出该控制方法由多源流媒体描述语言解释器、多源流媒体带宽分配、定值带宽检测、数据传输控制以及RTP/RTCP五个部分组成。MSML解释器根据MSML文件获得各路流媒体的URL、传输质量要求;多源流媒体带宽分配模块根据流媒体传输的QoS要求以及检测模块得到的带宽值确定各路流媒体的传输速率与编码速率;数据传输控制模块根据VCR命令与缓冲区状态对媒体传输进行控制;RTP/RTCP模块实现流媒体的实时有序传输。该发明可实现多路多源并发流媒体传输质量的协调控制,以降低传输延迟与丢包率,适用于多窗口视频点播、网络视频监控、网络教育课件点播、多角度/多场景实况转播等应用领域。该发明通过协调控制多路多源媒体流的传输质量,降低延迟和丢包率的办法来实现优化后端带宽。该方法的缺陷在于不能保证用户的视频浏览效果,不能充分利用有效带宽来增加对于客户端的实际接入容量,没有针对摄像头接入服务器的前端带宽的优化管理,不能满足大规模多层次的实时网络监控领域的需求。中国专利申请号“ 2004100867111”,发明名称“一种鲁棒的基于点对点的流调度方法”的专利申请文件中,指出将调度服务器、流媒体服务器和客户端节点组成一个直播网络,根据每个客户端节点在网络中所实现功能的不同给予不同的定义,在网络中每个客户端节点被赋于不同的功能。新客户端节点的请求加入以及客户端节点的退出造成网络拓扑结构的改变,通过对网络拓扑表的动态更新监控,以及改变部分客户端节点的功能实现流调度。该方法综合了 P2P技术、IP多播技术和网络代理技术的优点,力图最大程度上节省网络带宽。在该方法中采用多数据源技术以增强组播网络的鲁棒性。同时,多数据源的低相关性,为重传等差错恢复提供了有利条件。该发明是对网络拓扑表的动态更新监控和改变部分客户端节点的功能实现的流调度。所以难以满足客户端对多路视频监控的同时进行视频切换,也就是对后端带宽的优化存在严重缺陷,不能满足网络视频监控系统的基本要求。没有针对摄像头接入服务器的前端带宽的优化管理,不能满足大规模多层次的实时网络监控领域的需求。中国专利申请号“2006100193781”,发明名称“基于以太无源光网络的音视频监控系统流媒体服务器”的专利申请文件中,指出该发明提供的基于以太网无源光网络的音视频监控系统流媒体服务器,是由音视频编码格式转换板和交换控制板组成,其通过数据总线连接;音视频编码格式转换板设有音视频编码格式转换模块,其由一片网络处理器和一片音视频编码格式转换处理器,两者通过双向数据总线和若干控制线连接;交换控制板包括以太网交换模块和网管处理器,两者通过MII/GMII接口连接。本服务器能够自动识别并将网络传入的流媒体数据的音视频编码格式转化为AVS规定的音视频编码格式,再以流媒体数据方式发送到目的地址;还能够根据网管信令将转化后的单路信源流媒体数据以多播或组播的方式分发到网络监控客户端,大大降低对网络带宽的需求和网络音视频服务器的负荷。该发明根据客户监控端的网管信令,依据同一源地址对应的目的地址的数目复制信源流媒体数据并转发到目的地址。以解析客户监控端的网管信令为基础的网络带宽管理比较被动,难以实时动态地满足客户端的切换要求。没有专门针对摄像头接入服务器的前端带宽的优化管理,不能做到对于没有被浏览的视频源拒绝接入服务器。没有做到使用该视频源的客户端数量减少为O时,切断对于该路信源的接入。没有实现针对媒体流的完全动态管理,不能完全满足大规模多层次的实时网络监控的带宽管理需求。中国专利申请号“2009101905293”,发明名称“一种流媒体服务节点及其负载均衡方法”的专利申请文件中,指出该发明公开了一种流媒体服务节点及其负载均衡方法,所述方法包括如下步骤:流媒体服务节点中的资源管理模块实时监控流媒体服务节点中的各个资源单元的负载状况;资源管理模块收到用户服务请求后,根据预定资源选择策略选择为该用户提供服务的资源单元,获取该资源单元所属的控制模块;控制模块控制所述资源单元在服务期间向该用户提供流媒体服务。流媒体服务节点包括资源管理模块和控制模块。本发明使得流媒体服务节点的整体性能得到提高,从而能够为用户提供高质量的流媒体服务。该发明是相同资源的访问均衡实现,难以使用在实时多级监控系统领域。另外,美国专利申请号“2011161513”,发明名称“Media Stream Monitor”的专利申请文件,其通过向服务器申请与当前记录相关的媒体流,用来测试多种流媒体错误。可以用于分析实时监控系统实施过程中出现的问题。同样地,该发明也无法实现针对媒体流的完全动态管理,不能完全满足大规模多层次的实时网络监控的带宽管理需求。

发明内容
本发明的目的在于提供一种实时网络监控系统及其方法,用于实现针对摄像头接入流媒体服务器的前端带宽的优化管理,并满足大规模多层次的实时网络监控的带宽管理需求。
为了实现上述目的,本发明提供一种实时网络监控系统,其特征在于,包括:
动态媒体流管理模块,用于响应客户端的视频流申请,接入相应视频,对没有客户端申请的视频流不做接入;对客户端提出的视频流申请,判断相应的视频是否已接入流媒体服务器,若已接入,则在流媒体服务器拷贝转发;
转发和管理模块,连接所述动态媒体流管理模块,用于实现视频流的帧的输入和输出;
信号量模块,连接所述动态媒体流管理模块和所述转发和管理模块,用于实现输入视频巾贞与输出视频巾贞的同步;
多层收发模块,连接所述动态媒体流管理模块和所述转发和管理模块,用于创建和维护多层IP地址和视频名称数据库,实现多层次和多IP域的收发管理。
所述的实时网络监控系统,其中,所述动态媒体流管理模块,进一步包括:
数据库模块,用于在本级数据库写入对于本级流媒体服务器的配置信息;
视频源索引模块,连接所述数据库模块,用于在本级流媒体服务器上创建二维的视频源索引数据块,根据所述配置信息定位接入本级流媒体服务器的每个DVR上的每个摄像头;
客户端管理模块,连接所述数据库模块、所述视频源索引模块,用于创建二维的客户端管理数据块,该客户端管理数据块中的每一个元素与接入本级流媒体服务器的DVR和输入视频源通道一一对应,解析客户端请求,检索所述视频源索引数据块,确定请求的视频源所在的通道位置和所述客户端管理数据块对应的元素,通过控制所述客户端管理数据块中的元素,对本级流媒体服务器上的每个DVR的输入视频源通道的当前访问客户端数量进行记录。
所述的实时网络监控系统,其中,所述客户端管理模块,进一步判断当前访问客户端数量是否超过数据库里设置的该视频源通道的最大访问客户端数量,若是,则向下一个申请的客户端发出警告信息,提示超过访问数量,请等待。
所述的实时网络监控系统,其中,所述客户端管理模块,进一步对请求该路视频的客户端数目进行判断,若该客户端数量减少到0,则实时切断对于流媒体服务器该路视频的接入。
所述的实时网络监控系统,其中,所述配置信息包括:所有流媒体服务器ID号以及IP地址、允许接入本级流媒体服务器的最大视频源数量、接入本级流媒体服务器的所有DVR的ID号以及每个DVR的摄像头接口数目。
所述的实时网络监控系统,其中,所述转发和管理模块,进一步包括:
循环缓存管理模块,用于创建三维的循环缓存数据,分别存储本级流媒体服务器接入的视频索引号、视频源需要缓存的帧数、视频帧的大小;
输入模块,连接所述循环缓存管理模块,用于根据视频索引号,将所接收的数据存储到循环缓存数据;
输出模块,连接所述循环缓存管理模块,用于解析客户端请求的视频名称,根据该视频名称查询视频索引号和接收的IP端口,获取客户端请求的IP地址,根据该视频索引号从循环缓存数据中拷贝数据,并发送至该IP地址。
所述的实时网络监控系统,其中,所述信号量模块,进一步创建二维的同步信号量集,该同步信号量集中的视频源的每一帧与输出的同步信号量的颗粒一一对应,当输入一个视频帧时,使同步信号量增加一个量,若达到循环缓存数据块的最大存储帧数限制时,复位为零,从头开始继续;当输出一个视频帧时,让同步信号量减少一个量,到零为止。
所述的实时网络监控系统,其中,所述多层收发模块,进一步解析客户端请求的视频名称和流媒体服务器ID后,与本级流媒体服务器ID进行匹配,若匹配失败,使用该流媒体服务器ID查询本级数据库,得到请求视频源所在的下级流媒体服务器IP地址和端口,本级流媒体服务器作为一个客户端与下级流媒体服务器连接,并进行数据通信。
为了实现上述目的,本发明提供一种实时网络监控方法,其特征在于,包括:
步骤一,响应客户端的视频流申请,接入相应视频,对于没有客户端申请的视频流不做接入;
步骤二,对于客户端提出的视频流申请,判断这一路视频是否已接入流媒体服务器,若已接入,则在本级流媒体服务器拷贝转发;
步骤四,同步输入视频巾贞与输出视频巾贞;
步骤五,创建和维护多层IP地址和视频名称数据库,实现多层次和多IP域的转发管理。
10、根据权利要求9所述的实时网络监控方法,其特征在于,所述步骤一中,进一步包括:
在本级数据库写入对于本级流媒体服务器的配置信息、在本级流媒体服务器上创建二维的视频源索引数据块、二维的客户端管理数据块,该客户端管理数据块中的每一个元素与接入本级流媒体服务器的DVR和输入视频源通道一一对应;
根据所述配置信息定位接入本级流媒体服务器的每个DVR上的每个摄像头;
解析客户端请求,检索视频源索引数据块,确定请求的视频源所在的通道位置和所述客户端管理数据块对应的元素,通过控制所述客户端管理数据块中的元素,对本级流媒体服务器上的每个DVR的输入视频源通道的当前访问客户端数量进行记录。
所述的实时网络监控方法,其中,所述步骤二中,进一步包括:
判断当前访问客户端数量是否超过数据库里设置的该视频源通道的最大访问客户端数量,若是,则向下一个申请的客户端发出警告信息,提示超过访问数量,请等待。
所述的实时网络监控方法,其中,所述步骤三中,进一步包括:
对请求该路视频的客户端数目进行判断,若该客户端数量减少到0,则实时切断对于流媒体服务器该路视频源的接入。
所述的实时网络监控方法,其中,所述配置信息包括:所有流媒体服务器ID号以及IP地址、允许接入本级流媒体服务器的最大视频源数量、接入本级流媒体服务器的所有DVR的ID号以及每个DVR的摄像头接口数目。
所述的实时网络监控方法,其中,所述步骤二中,进一步包括:
创建三维的循环缓存数据,分别存储本级流媒体服务器接入的视频索引号、视频源需要缓存的帧数、视频帧的大小;
根据视频索引号,将所接收的数据存储到循环缓存数据块;
解析客户端请求的视频名称,根据该视频名称查询视频索引号和接收的IP端口,获取客户端请求的IP地址,根据该视频索引号从循环缓存数据块中拷贝数据,并发送至该IP地址。
所述的实时网络监控方法,其中,所述步骤四中,进一步包括:
创建二维的同步信号量集,该二维同步信号量集中的视频源的每一帧与输出的同步信号量的颗粒一一对应,当输入一个视频帧时,使同步信号量增加一个量,若达到循环缓存数据块的最大存储帧数限制时,复位为零,从头开始继续;当输出一个视频帧时,让同步信号量减少一个量,到零为止。
所述的实时网络监控方法,其中,所述步骤五中,进一步包括:
解析客户端请求的视频名称和流媒体服务器ID后,与本级流媒体服务器ID进行匹配,若匹配失败,使用该流媒体服务器ID查询本级数据库,得到请求视频源所在的下级流媒体服务器IP地址和端口,将本级流媒体服务器作为一个客户端与下级流媒体服务器连接,实现本级流媒体服务器与下级流媒体服务器之间的数据通信。
与现有技术相比,本发明的有益技术效果在于:
本发明提出了一种基于媒体流动态管理技术和数据库技术的实时网络监控系统及其方法,本发明实现了针对媒体流的完全动态管理,能够满足大规模多层次的实时网络监控的带宽管理需求。


图1是本发明的实时网络监控系统结构图2是本发明的输入功能流程图3是本发明的输出功能流程图4是本发明的视频源与同步管理信号量的对应关系;
图5是本发明的信号量同步功能流程图6是本发明的多层收发功能流程图7是本发明的实时网络监控方法流程图。
具体实施方式
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
如图1所示,是本发明的实时网络监控系统结构图。该系统100包括:动态媒体流管理模块10、转发和管理模块20、信号量模块30、多层收发模块40。
动态媒体流管理模块10,用于对流媒体服务器的前端数据流的接入管理和客户端请求视频流的查找与匹配管理,实现流媒体服务器与外部视频源和客户端之间的动态管理。
具体地,动态媒体流管理模块10响应客户端的视频流申请,接入相应视频,对于没有客户端申请的视频流不做接入;对于客户端提出的视频流申请,先判断这一路视频是否已经接入流媒体服务器,如果该路视频还没有接入流媒体服务器,调用视频源接入功能进行接入,如果已经接入,则直接在流媒体服务器拷贝转发;而不需要再次从同一摄像头接入该路数据,进一步节省流媒体服务器的前端带宽;如果该路视频的客户端数量减少为0,则切断流媒体服务器对于该路视频的接入,释放流媒体服务器的前端带宽。
转发和管理模块20,用于实现循环缓存管理功能和输入、输出功能。
具体地,对于固定分辨率和清晰度的视频流,随着场景、颜色和帧序列的不同,视频流会产生剧烈波动,转发和管理模块20通过实现循环缓存,依据网络带宽使用情况,动态确定发送频率,配合客户端实现的对应缓存,减少这种波动对转发网络的冲击,稳定转发质量。
信号量模块30,用于使用同步信号量实现输入视频帧与输出视频帧的同步,尽量在流媒体服务器内部避免出现因为视频帧的重复或丢失造成的客户端花屏和抖动,以实现高质量的多路多源并发流媒体服务。
多层收发模块40,用于创建和维护多层IP地址和视频名称数据库,实现多层次和多IP域的转发管理,便于客户端实现多网融合。
具体地,多层收发模块40解析出客户端请求的视频源名称和流媒体服务器ID,与本级流媒体服务器ID作匹配,若匹配失败,使用客户端请求的流媒体服务器ID查询本级数据库,得到请求视频源所在的下一级流媒体服务器的IP地址和端口,此时,本级流媒体服务器作为一个客户端与下级流媒体服务器连接,进行数据通信。
进一步地,动态媒体流管理模块10实现媒体流从接入到输出的视频索引功能和客户端数据管理功能,实现完全的动态管理,极大地避免流媒体服务器的带宽浪费。
进一步地,信号量模块30使用同步信号量同步视频帧的接入与发出,用很小的系统消耗很大程度上提高了视频转发的质量和稳定性。
进一步地,多层收发模块40采用多层IP地址和视频名称数据库,实现多层次和多IP域的转发,便于客户端实现多网融合。
下面进一步对如上各模块的功能进行描述。
动态媒体流管理模块10,用于实现动态媒体流管理,进一步包括:数据库模块101、视频源索引模块102、客户端管理模块103。
数据库模块101在本级数据库写入对于本级流媒体服务器的配置信息,包括所有流媒体服务器ID号以及IP地址(包括当前流媒体服务器ID号和IP地址)、允许接入本级流媒体服务器的最大视频源数量、接入本级流媒体服务器的所有DVR的ID号以及每个DVR的摄像头接口数目。其中,DVR(Digital Video Recorder)是数字视频记录器。
视频源索引模块102用于建立视频源的索引。
现在对于大规模网络监控工程,需要使用大量的DVR,一台DVR —般提供8到16路的视频源接入接口,这些视频源在监控网络里共享DVR的一个IP地址,因此不能用IP地址确定一路视频源。
视频源索引模块102在本级流媒体服务器上创建视频源索引数据块,用于定位接入本级流媒体服务器的每个DVR上的每个摄像头。
视频源索引模块102创建的视频源索引数据块为二维的视频源索引数据块,用于存放与本级流媒体服务器连接的视频源名称,第一维存放本级流媒体服务器接入的视频源通道序列号(不要超过允许接入的最大限制),第二维存放对应视频源名称的长度。
视频源索引模块102连接数据库模块101,在流媒体服务器中的程序初始化或是运行过程中,依据本级流媒体服务器的ID号查询数据库,读出配置信息,配置信息包括允许接入本级流媒体服务器的最大视频源数量,接入本级流媒体服务器的所有DVR的ID号以及每个DVR的摄像头接口数目。使用DVR的ID号和该DVR上接入的视频源通道序列号,合成本级流媒体服务器上所有视频源的视频源名称,存入上述创建的视频源索引数据块。
这样,只要得到符合系统规定的视频源名称,就能从上述视频源索引数据块检索到该路视频在本级流媒体服务器的具体通道位置。实现对大量DVR提供的视频源的检索功能,使对于媒体流的动态管理成为可能。
客户端管理模块103用于实现客户端管理功能。
对于大规模监控来说,视频源与客户端的对应关系有:一对一,一对多,多对一和多对多。高效地对这些对应关系的管理是流媒体服务器程序必须做到的。
因为需要处理多级多域的大规模视频源和客户端,客户端管理模块103要创建二维的客户端管理数据块,客户端管理数据块的每个元素与接入本级流媒体服务器的DVR和其输入的视频源通道一一对应。
客户端管理模块103连接视频源索引模块102,解析客户端请求,检索视频源索引数据块,确定需要的视频源所在的具体通道和其对应的客户端管理数据块的元素。通过控制客户端管理数据块的每个元素,对本级流媒体服务器上每个DVR的输入视频源通道的当前访问人数进行记录,动态跟踪每个视频源接入通道的访问人数的变动。
如果超过数据库里设置的该视频源通道的最大访问客户端数量,客户端管理模块103则向下一个申请的客户端发出警告信息,提示超过访问数量,请等待。
客户端管理模块103先判断客户端请求的视频源是否已经接入流媒体服务器,如果该路视频还没有接入流媒体服务器,调用视频源接入功能进行接入,如果已经接入,则直接在流媒体服务器进行拷贝转发或者将该客户端加入组播。判断客户端请求视频源的浏览客户端数目,如果该路视频的浏览客户端数量减少为0,则实时切断对于流媒体服务器该路视频的接入,释放流媒体服务器的前端带宽。
转发和管理模块20,连接动态媒体流管理模块10,用于实现转发功能和管理功能,进一步包括:循环缓存管理模块201、输入模块202、输出模块203。
循环缓存管理模块201用于实现循环缓存管理功能。
循环缓存管理模块201创建三维的循环缓存数据块,第一维对应本级流媒体服务器接入的视频源通道序列号,第二维对应该路视频源需要缓存的帧数,第三维对应视频帧的大小。
对于固定分辨率和清晰度的视频数据流,随着场景,颜色和帧序列的不同,数据流大小会产生剧烈波动,通过使用转发功能模块实现的循环缓存数据块,依据网络带宽使用情况,动态确定发送频率,配合客户端实现的对应缓存,减少这种波动对转发网络的冲击,稳定转发质量。
循环缓存管理模块201在输入函数里,使用流媒体服务器程序解析出的客户端请求的视频源索引号,向上述循环缓存数据块存入视频源数据,并同步管理同步信号量。
输入模块202用于实现输入功能。
输入模块202接收数据,并依据视频源索引号,将数据存入到循环缓存数据块。
输出模块203用于实现输出功能。
输出模块203解析出客户端请求的视频源名称,查询到视频源索引号和其接收的IP端口,根据该IP端口获得没有被占用的可使用端口。记录发送该客户端请求的IP地址。依据视频源索引号从循环缓存数据块中拷贝数据,发送到上述IP地址。输入模块202实现输入的流程图见图2所示,输出模块203实现输出功能的流程图见图3所示。
信号量模块30,连接动态媒体流管理模块10、转发和管理模块20,用于实现输入视频巾贞与输出视频巾贞的同步管理。
在实时监控系统中,媒体流的速度波动很大,各个视频帧的大小差别也很大,信号量模块30使用同步信号量实现输入视频帧与输出视频帧的同步,可避免出现因为视频帧的重复或丢失造成的客户端花屏和抖动。
在Linux操作系统里,信号量分为同步信号量和互斥信号量,信号量模块30使用同步信号量能够实现输入视频帧和输出视频帧的同步。Linux操作系统处理同步信号量的系统代价很小,能够高效处理,可以满足大规模的同步应用需求。因为需要处理多级多域的大规模视频源,所以信号量模块30要创建二维同步信号量集,视频源的每一帧与输出同步信号量的颗粒 对应。对应关系如图4。
信号量模块30创建二维同步信号量集后,输入一个视频帧,使同步信号量增加一个量,达到循环缓存数据块的最大存储帧数限制时,复位为零,从头开始继续。输出一个视频帧,让同步信号量减少一个量,到零为止。具体实现如图5所示。
多层收发模块40,连接动态媒体流管理模块10,用于实现多层次和多IP域的收发管理。
多层收发模块40解析客户端请求的视频名称和流媒体服务器ID后,与本级流媒体服务器ID进行匹配,如果匹配失败,使用该流媒体服务器ID查询数据库,得到请求视频源所在的下级流媒体服务器的IP地址和端口。详细实现见图6所示。
如图2所示,是本发明的输入功能流程图,该流程具体包括如下步骤:
步骤21,等待数据;
步骤22,数据到来;
步骤23,数据缓存;
步骤24,判断要缓存的数据是否达到循环缓存数据块的最大容量?若是,则清空该信号量;否则返回步骤21。
如图3所示,是本发明的输出功能流程图,该流程具体包括如下步骤:
步骤31,收到客户端的视频请求;
步骤32,解析该请求,得到视频索引号;
步骤33,依据视频索引号,等待该路视频信号量;
步骤34,数据拷贝;
步骤35,数据发送;
步骤36,判断客户端是否已发送停止指令或心跳停止?若是,则修改客户端管理数据块,并进入下一步骤;否则返回步骤34 ;
步骤37,停止一路发送,释放网络连接,释放后端带宽;
步骤38,判读本路视频源上是否没有客户端?若是,则修改客户端管理数据块,并进入下一步骤,否则返回步骤34 ;
步骤39,切断该路视频源接入流媒体服务器,释放流媒体服务器的前端带宽。
进一步地,步骤36中,心跳是一种向对方,这里是流媒体服务器,报告自身运行状态的一种周期性报文,可以在流媒体服务器用于判断客户端程序是否还在运行,如果客户端程序退出运行,流媒体服务器就收不到它的心跳,就是心跳停止,并以此做出相应的处理。
如图5所示,是本发明的信号量同步功能流程图,该流程具体包括如下步骤:
步骤51,创建同步信号量集;
步骤52,解析客户端请求,查询到需求的视频索引号;
步骤53,依据该视频索引号,确定该路视频的同步信号量;
步骤54,有视频帧输入,给该信号量加一个颗粒;
步骤55,判断是否大于循环缓存数据块的限制大小?若是,则清空该信号量,返回步骤54,否则等待信号量,进入步骤56 ;
步骤56,有视频帧输出,减少一个颗粒,并返回步骤54。
如图6所示,是本发明的多层收发功能流程图,该流程具体包括如下步骤:
步骤61,解析客户端请求;
步骤62,请求视频源不在本级流媒体服务器;
步骤63,使用请求的流媒体服务器ID查询数据库;
步骤64,获得下级流媒体服务器的IP地址;
步骤65,查询本地可用端口号;
步骤66,与下级流媒体服务器建立连接;
步骤67,发送客户端的请求和本地可用端口号;
步骤68,接收下级流媒体服务器的视频流;
步骤69,发送给本级客户端;
步骤610,监听本级客户端心跳;
步骤611,判断本级客户端是否退出?若是,则停止接收和转发视频流,释放带宽。
如图7所示,是本发明的实时网络监控方法流程图。
在系统布置期间实现多级数据库配置。配置信息包括所有流媒体服务器ID号以及IP地址、当前流媒体服务器ID号和IP地址、允许接入本级流媒体服务器的最大视频源数量、接入本级流媒体服务器的所有DVR的ID号以及每个DVR接入的最大视频源序列号。
在流媒体服务器初始化阶段,创建视频源索引数据块、客户端管理数据块和循环缓存数据块,访问本地数据库,完成对这些数据块的初始化赋值。
该方法流程的步骤包括:
响应客户端的视频流申请,接入相应视频,对于没有客户端申请的视频流不做接入;对于客户端提出的视频流申请,先判断这一路视频是否已经接入流媒体服务器,如果已经接入,就直接在流媒体服务器拷贝转发;而不需要再次从同一摄像头接入该路数据,进一步节省流媒体服务器的前端带宽;再判断接入该路视频源的客户端端数量是否减少为0,如果该路视频客户端数量减少为0,切断流媒体服务器对于该路视频的接入,释放流媒体服务器的前端带宽;
使用同步信号量实现输入视频帧与输出视频帧的同步,避免出现因为视频帧的重复或丢失造成的客户端花屏和抖动,实现了高质量的多路多源并发流媒体服务。
创建和维护多层IP地址和视频名称数据库,实现多层次和多IP域的转发管理,便于客户端实现多网融合。
进一步地,实现媒体流从接入到输出的视频索引功能和客户端数据管理功能,实现完全的动态管理,极大地避免带宽浪费。
进一步地,使用同步信号量同步视频帧的接入与发出,用很小的系统消耗很大程度上提高了视频转发的质量和稳定性。
进一步地,采用多层IP地址和视频名称数据库,实现多层次和多IP域的转发,便于客户端实现多网融合。
该方法流程详细地描述了本发明的实时网络监控的全过程,具体包括如下步骤:
步骤71,创建本级的视频IP地址和视频名称数据库;
步骤72,创建本级视频流的客户端管理数据块;
步骤73,创建视频帧的三维循环缓存数据块和同步信号量集;
步骤74,监听客户端请求;
步骤75,收到客户端请求;
步骤76,解析客户端请求;
步骤77,查询本地数据库,确定客户端请求视频源的IP地址和名称;
步骤78,判断不是本级视频?若不是本级视频,则在本级保留IP彳目息和端口彳目息用于转发,将申请发送给下级流媒体服务器,等待接收下级数据;否则转入步骤710 ;
步骤79,接收下级流媒体服务器的数据,并转入步骤713 ;
步骤710,读出该路视频流的客户端管理数据块;
步骤711,判断该路视频是否还没有接入流媒体服务器?若是,则调用回调函数,接入该路视频流;否则进入下一步骤712 ;
步骤712,维护该路视频流的客户端管理数据块;
步骤713,维护帧同步缓存的同步信号量集;
步骤714,数据接收或拷贝;
步骤715,数据转发;
步骤716,通过监听客户端心跳判断是否有客户端停止访问?若是,则维护该路视频流的客户端管理数据块;
步骤717,判断是否没有客户端访问该路视频?若没有,则切断该路视频的前端接A ;
步骤718,维护该路视频流的客户端管理数据块。
分析发现,某一确定时间里,大部分接入流媒体服务器的视频源对于当前客户端来说是处于等待状态,并不需要在客户端显示出来。对于客户端不敏感媒体流的接入浪费了前端带宽。本发明采用动态管理视频数据流能够有效解决这些问题。同时,通过数据库的动态管理访问技术和信号量同步技术,实现性价比很高的多层次、多IP域的大规模监控系统。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种实时网络监控系统,其特征在于,包括: 动态媒体流管理模块,用于响应客户端的视频流申请,接入相应视频,对没有客户端申请的视频流不做接入;对客户端提出的视频流申请,判断相应的视频是否已接入流媒体服务器,若已接入,则在流媒体服务器拷贝转发; 转发和管理模块,连接所述动态媒体流管理模块,用于实现视频流的帧的输入和输出; 信号量模块,连接所述动态媒体流管理模块和所述转发和管理模块,用于实现输入视频中贞与输出视频巾贞的同步; 多层收发模块,连接所述动态媒体流管理模块和所述转发和管理模块,用于创建和维护多层IP地址和视频名称数据库,实现多层次和多IP域的收发管理。
2.根据权利要求1所述的实时网络监控系统,其特征在于,所述动态媒体流管理模块,进一步包括: 数据库模块,用于在本级数据库写入对于本级流媒体服务器的配置信息; 视频源索引模块,连接所述数据库模块,用于在本级流媒体服务器上创建二维的视频源索引数据块,根据所述配置信息定位接入本级流媒体服务器的每个DVR上的每个摄像头; 客户端管理模块,连接所述数据库模块、所述视频源索引模块,用于创建二维的客户端管理数据块,该客户端管理数据块中的每一个元素与接入本级流媒体服务器的DVR和输入视频源通道一一对应,解析客户端请求,检索所述视频源索引数据块,确定请求的视频源所在的通道位置和所述客户端管理数据块对应的元素,通过控制所述客户端管理数据块中的元素,对本级流媒体服务器上的每个DVR的输入视频源通道的当前访问客户端数量进行记录。
3.根据权利要求2所述的实时网络监控系统,其特征在于,所述客户端管理模块,进一步判断当前访问客户端数量是否超过数据库里设置的该视频源通道的最大访问客户端数量,若是,则向下一个申请的客户端发出警告信息,提示超过访问数量,请等待。
4.根据权利要求2所述的实时网络监控系统,其特征在于,所述客户端管理模块,进一步对请求该路视频的客户端数目进行判断,若该客户端数量减少到O,则实时切断对于流媒体服务器该路视频的接入。
5.根据权利要求2、3或4所述的实时网络监控系统,其特征在于,所述配置信息包括:所有流媒体服务器ID号以及IP地址、允许接入本级流媒体服务器的最大视频源数量、接入本级流媒体服务器的所有DVR的ID号以及每个DVR的摄像头接口数目。
6.根据权利要求1-4任一所述的实时网络监控系统,其特征在于,所述转发和管理模块,进一步包括: 循环缓存管理模块,用于创建三维的循环缓存数据,分别存储本级流媒体服务器接入的视频索引号、视频源需要缓存的帧数、视频帧的大小; 输入模块,连接所述循环缓存管理模块,用于根据视频索引号,将所接收的数据存储到循环缓存数据; 输出模块,连接所述循环缓存管理模块,用于解析客户端请求的视频名称,根据该视频名称查询视频索引号和接收的IP端口,获取客户端请求的IP地址,根据该视频索引号从循环缓存数据中拷贝数据,并发送至该IP地址。
7.根据权利要求1-4任一所述的实时网络监控系统,其特征在于,所述信号量模块,进一步创建二维的同步信号量集,该同步信号量集中的视频源的每一帧与输出的同步信号量的颗粒一一对应,当输入一个视频帧时,使同步信号量增加一个量,若达到循环缓存数据块的最大存储帧数限制时,复位为零,从头开始继续;当输出一个视频帧时,让同步信号量减少一个量,到零为止。
8.根据权利要求1-4任一所述的实时网络监控系统,其特征在于,所述多层收发模块,进一步解析客户端请求的视频名称和流媒体服务器ID后,与本级流媒体服务器ID进行匹配,若匹配失败,使用该流媒体服务器ID查询本级数据库,得到请求视频源所在的下级流媒体服务器IP地址和端口,本级流媒体服务器作为一个客户端与下级流媒体服务器连接,并进行数据通信。
9.一种实时网络监控方法,其特征在于,包括: 步骤一,响应客户端的视频流申请,接入相应视频,对于没有客户端申请的视频流不做接入; 步骤二,对于客户端提出的视频流申请,判断这一路视频是否已接入流媒体服务器,若已接入,则在本级流媒体服务器拷贝转发; 步骤四,同步输入视频帧与输出视频帧; 步骤五,创建和维护多层IP地址和视频名称数据库,实现多层次和多IP域的转发管 理。
10.根据权利要求9所述的实时网络监控方法,其特征在于,所述步骤一中,进一步包括: 在本级数据库写入对于本级流媒体服务器的配置信息、在本级流媒体服务器上创建二维的视频源索引数据块、二维的客户端管理数据块,该客户端管理数据块中的每一个元素与接入本级流媒体服务器的DVR和输入视频源通道一一对应; 根据所述配置信息定位接入本级流媒体服务器的每个DVR上的每个摄像头; 解析客户端请求,检索视频源索引数据块,确定请求的视频源所在的通道位置和所述客户端管理数据块对应的元素,通过控制所述客户端管理数据块中的元素,对本级流媒体服务器上的每个DVR的输入视频源通道的当前访问客户端数量进行记录。
11.根据权利要求10所述的实时网络监控方法,其特征在于,所述步骤二中,进一步包括: 判断当前访问客户端数量是否超过数据库里设置的该视频源通道的最大访问客户端数量,若是,则向下一个申请的客户端发出警告信息,提示超过访问数量,请等待。
12.根据权利要求10所述的实时网络监控方法,其特征在于,所述步骤三中,进一步包括: 对请求该路视频的客户端数目进行判断,若该客户端数量减少到0,则实时切断对于流媒体服务器该路视频源的接入。
13.根据权利要求10、11或12所述的实时网络监控方法,其特征在于,所述配置信息包括:所有流媒体服务器ID号以及IP地址、允许接入本级流媒体服务器的最大视频源数量、接入本级流媒体服务器的所有DVR的ID号以及每个DVR的摄像头接口数目。
14.根据权利要求9-12任一所述的实时网络监控方法,其特征在于,所述步骤二中,进一步包括: 创建三维的循环缓存数据,分别存储本级流媒体服务器接入的视频索引号、视频源需要缓存的帧数、视频帧的大小; 根据视频索引号,将所接收的数据存储到循环缓存数据块; 解析客户端请求的视频名称,根据该视频名称查询视频索引号和接收的IP端口,获取客户端请求的IP地址,根据该视频索引号从循环缓存数据块中拷贝数据,并发送至该IP地址。
15.根据权利要求9-12任一所述的实时网络监控方法,其特征在于,所述步骤四中,进一步包括: 创建二维的同步信号量集,该二维同步信号量集中的视频源的每一帧与输出的同步信号量的颗粒一一对应,当输入一个视频帧时,使同步信号量增加一个量,若达到循环缓存数据块的最大存储帧数限制时,复位为零,从头开始继续;当输出一个视频帧时,让同步信号量减少一个量,到零为止。
16.根据权利要求9-12任一所述的实时网络监控方法,其特征在于,所述步骤五中,进一步包括: 解析客户端请求的视频名称和流媒体服务器ID后,与本级流媒体服务器ID进行匹配,若匹配失败,使用该流媒体服务器ID查询本级数据库,得到请求视频源所在的下级流媒体服务器IP地址和端口,将本级流媒体服务器作为一个客户端与下级流媒体服务器连接,实现本级流媒体服务器与下级流媒体服`务器之间的数据通信。
全文摘要
本发明公开了一种实时网络监控系统及其方法,该系统包括动态媒体流管理模块,用于响应客户端的视频流申请,接入相应视频,对没有客户端申请的视频流不做接入;对客户端提出的视频流申请,判断相应的视频是否已接入流媒体服务器,若已接入,则在流媒体服务器拷贝转发;转发和管理模块,用于实现视频流的帧的输入和输出;信号量模块,用于实现输入视频帧与输出视频帧的同步;多层收发模块,用于创建和维护多层IP地址和视频名称数据库,实现多层次和多IP域的收发管理。本发明实现了针对摄像头接入流媒体服务器的前端带宽的优化管理,并满足大规模多层次的实时网络监控的带宽管理需求。
文档编号H04N21/24GK103139607SQ201110389279
公开日2013年6月5日 申请日期2011年11月30日 优先权日2011年11月30日
发明者吴勇刚, 赵甫 申请人:中国航天科工集团第二研究院七〇六所, 北京市爱威电子技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1