法律状态公告日
法律状态信息
法律状态
2010-06-30
专利权的转移 IPC(主分类):H04L12/28 变更前: 变更后: 登记生效日:20100521 申请日:20070626
专利申请权、专利权的转移
2009-12-02
授权
授权
2008-02-20
实质审查的生效
实质审查的生效
2007-12-26
公开
公开
一、技术领域
本发明涉及在对视频监控系统中视频资源的管理方法。
二、背景技术
当前,在传统网络视频监控领域,大多数是客户端直接和视频源连接,这种方式严重限制了监控视频的使用者数目,无法适应大规模应用的需求。
为此,人们开始使用软交换技术来解决这个问题。视频流的软交换技术一定程度上解决了视频源的网络带宽限制,允许更多的用户同时查看同一视频流。定义VTDU视频分发与转发单元来实现视频流的软交换功能。VTDU主要完成视频信号的转发和分发,避免客户端直接访问前端摄像机,降低网络流量。
1.转发:视频可通过流媒体服务器被转发,访问方只要访问流媒体服务器并告知要访问的前端设备,流媒体服务器可代为取到视频流并转发给该访问方。
2.分发:一路视频通过VTDU可以被复制成多路送给不同的访问方。媒体交换层完成整个运营级视频监控系统的中心平台功能,它在运营支撑层的控制和管理下实现音视频的传送和存储。媒体交换层由CMU、VTDU、NRU以及其他相关的配套设备组成。部分或全部设备承载在现有运营商数据网之上。媒体交换层设备可向用户接入层的PU请求音视频,接受用户接入层CU的音视频传输请求,并与用户接入层协同建立传输通道。VTDU作为中心平台的媒体处理单元,负责音视频的请求、接收和分发,实现多级级联和分布式部署。一路视频通过VTDU可以被复制成多路送给不同的访问方。每个VTDU仅接受本域CMU的管辖,同时可为其它域提供媒体访问接口。但是这种单一的视频流软交换方式对于电信级网络视频监控仍然存在许多不足,无法满足对不同客户提供差异化服务、根据网络环境的不同和实际业务时间覆盖情况,分别提供不同转发策略的应用需求。
四、发明内容
本发明目的是:针对上述问题,本发明提出多种视频交换路由方式的瘦资源视频绑定策略的方法,解决直连方式无法同时满路多名用户实时视频以及传统流路由转发方式过于单一,导致资源分配不合理而出现的资源浪费的问题,该发明是针对电信级运营商的视频绑定策略。
本发明的技术方案是多种视频交换路由方式的瘦资源视频绑定策略,在用户使用前端设备(PU)和视频分发服务器(VTDU)设备资源的时候动态计算合适的视频转发分发路由,即由VTDU进行单视频点的多路转发,从而实现视频流的合理传输,以实现下述策略:
1)用户(CU)和前端设备(PU)的绑定:设定指定的PU直接向CU发送视频流;
2)PU和视频分发服务器(VTDU)的绑定:设定特定的VTDU只分发来自指定PU的视频流;
3)CU和VTDU的绑定:设定特定的VTDU只能为指定的客户提供服务,以便保证该用户拥有足够的资源实现稳定的服务;
4)CU和NRU的绑定:限定特定的数字图像存储空间网络录像服务器(NRU),只为指定的客户提供服务,以加强录像资料的机密性、保证获得独立的存储空间、保证拥有足够的网络资源;
5)PU和NRU的绑定:可以设定特定的NRU只为指定的PU提供录像服务。
另外,考虑负载均衡的要求,保证网络资源的充分利用和高可靠性,
联创视频监控系统平台提供上述策略的配置界面,并在用户使用以上设备资源的时候动态计算合适的视频转发分发路由,以实现上述策略。
通过灵活多变的视频交换路由策略,并通过VTDU进行单视频点的多路转发,从而实现视频流的合理传输,最大限度的减少骨干网络的带宽负担,是占用网络资源非常小的瘦资源模式。
本发明的的中心平台(包括CMU、VTDU、NRU)以及支撑系统(包括AAA、ULS和NMS)与前端设备单元PU、客户端用户CU各部分均接入承载IP网络工作。
平台管理各个设备资源的动态路由表,选路策略由下表中指定的设备参数决定:
表1
流程为:
1.1用户通过浏览器提交申请视频的请求
1.2进行udp打洞,获取用户的对外net地址和端口私网穿透的技术;
1.3申请指令提交给web服务器
1.4由servlet调用远程调度EJB接口
1.5进行视频的业务处理
1.6调度EJB计算最优路由算法,建立路由
1.7执行打通路由操作,申请并传输视。
选择起点流程的方法是:选择路由表中选择第一个视频分发服务器(VTDU),选择的流程如下述:
开始:1、CU与VTDU是否绑定?是则进入3否则进入2;2、在所有VTDU中查找最合适的?是则成功,否则失败;3、查找最合适的绑定VTDU?是则成功,否则进入4;4、查找最合适的未绑定VTDU?是则失败,否则成功;
选择最合适节点流程:最合适的VTDU查找流程时找不到再到未绑定VTDU服务器中进行选择最合适的;
如果PU没有和任何的VTDU进行绑定,只需要在全部的VTDU中进行选择最合适的。11、查找有视频源的VTDU?是则成功,否则进入12;12、VTDU负载是否均衡?是则进入13,否则进入14;13、查找最空闲的VTDU?是则成功,否则失败;14、查找最忙的VTDU?是则成功,否则失败;
终点选择流程,即选择路由表中选择第一个视频分发服务器(VTDU),选择的流程是:首先判断用户申请的视频服务器(PU)有没有和此VTDU进行直接绑定,如果用户和某VTDU进行了绑定,此PU的其所有的视频流的分发就需要用此类服务器进行分发。如PU同时绑定了多个视频分发服务器,就需要在其中进行选择最合适的。
选择有源节点流程:
在选择了起点和终点之后,如果起点和终点都没有用户所需要的视频源,则需要在所有的VTDU中进行有源的节点,在PU节点列表CollectionpuColl保存了所有PU视频的视频转发服务器的端口列表,根据负载均衡原理,在一组VTDU中查找输出最空闲的有源端口,并返回已知端口; 如果在此PU的节点列表中没有相关视频源,则需要到前端编码器进行新的视频申请,申请成功后,更新puColl中的数据结构,并在callColl中添加此次呼叫的信息,从而下次如果此次呼叫没有被中断,再有不同用户访问该视频点的图像时,只需通过此VTDU进行视频转发,不需要再到前端PU进行视频的申请。
本发明的有益效果是:
●通过对PU的最大视频连接数的判定,最大的合理利用PU的解码能力,充分保留了传统直连方式的优点,同时保留一路PU的视频连接数供视频流转发服务器转发视频流,可以避免直连方式对同时浏览实时视频的户数有上限的弊端,受限于PU的解码能力,直连的方式单通道可以同时解码的能力一般不超过六路实时视频,而该发明完全可以使单通道同时拥有的浏览用户量达到成百甚至上千。
●通过对最合适视频流转发服务器,有源视频流转发服务器,最空闲源视频流转发服务器,最忙碌源视频流转发服务器的查找和选择的多种视频交换路由方式避免了传统视频流转发服务器路由转发策略单一,资源分配不合理的缺点。传统视频流转发服务器路由转发策略是基于单个转发服务器负载量达到峰值的情况下选择其它服务器,在资源浪费的同时,由于单台服务器过高的负载量,使视频流的稳定性和实时器也有一定程序的下降,如果基于小企业,接入PU数量不是太大的情况下,比如说几十至上面个PU,该方式可以比较稳定的运行,但如果PU接入的数量成千乃至上万时,如电信级运营商,该方式就可能在短时间内因太于庞大的业务流量而导致整个系统崩馈。
●在各个不同的域之间使用跨域路由策略,可以指定特定的视频流转发服务器作为接口,在漫游时优先使用此VTDU作为视频的入口或出口,并合理的使用并控制资源,使之真正的达到电信运营级要求。
四、附图说明
图1本域实时视频浏览进行详细说明,
图2申请视频指令提交给EJB进行路由计算流程图
图3路由表的结构
图4选择的流程
图5VTDU查找流程
图6选择的流程
图7寻找最空闲的VTDU进行转发的寻找结构示意图
五、具体实施方式
下面结合具体实施例,进一步阐述本发明。
现以本域实时视频浏览进行详细说明,如图1:
1.流程说明
1.1用户通过浏览器提交申请视频的请求
1.2进行udp打洞,获取用户的对外net地址和端口
1.3申请指令提交给web服务器
1.4由servlet调用远程调度EJB接口
1.5进行视频的业务处理
1.6调度EJB计算最优路由算法,建立路由
1.7执行打通路由操作,申请并传输视
2.实现原理
由于用户的pc很可能是内网地址,由于在如今公网IP地址如此紧张的今天,通过内网访问Internet变得非常的普通,所以需要有私网穿透的技术。通过第三方进行UDP打洞操作,获取用户的对外net地址和端口。假设client A要向client B对话,但是A不知道B的地址,即使知道根据NAT的原理这个对话在第一次会被拒绝,因为clientB的NAT认为这是一个从没有过的外部发来的请求.这个时候,A如果发现自己没有保存B的地址,或者说发送给B的会话请求失败了,它会要求server端让B向A打一个洞,这个B->A的会话意义在于它使NAT B认为A的地址/端口是可以通过的地址/端口,这样A再向B发送对话的时候就不会再被NATB拒绝了。这样来实现打洞操作。
申请视频指令提交给EJB进行路由计算,计算流程图如图2,分别根据是否要PU直连,离用户最近的一台视频转发服务器上面是否有视频流,就可以判断是否进行此视频的重新申请,如果有则只需要该视频转发服务器进行转发,这样就可以满足多用户同时查看同一路用户的需求,这样可以最大限度的保证,编码器只有一路视频发往视频转发服务器,而转发服务器可以将其视频流转发给任意多的终端用户。
紧接着查询终点,并查看其转发服务器上面有没有视频源,如有此用户所需要的视频源,则直接进行转发,如没有视频源,则需要在所有系统转发服务器中进行查找是否有此视频源的服务器,有则利用此服务器进行转发,如没有发现则到前端编码器进行视频的申请,使得视频流按已生成的视频分发路由的顺序进行视频传输。
本地路由的策略如表1:
3.详细说明
3.1数据结构介绍
使用来进行调度数据的存储,路由表的结构如图3所示,
用PU节点列表Collection puColl来保存所有PU视频的视频转发服务器的端口列表,每个列表单元为PuNode,其数据结构是:
String subPuId,
Collection ports,//包含PortNode
Collection directCalls,
Collection totalCalls //pu的所有呼叫
而PortNode的数据结构为:
PortInfo portInfo; PortNode parent;
Collection directCalls; Collection totalCalls; Collection children;
使用呼叫列表callColl来保存所有视频呼叫的列表,每个呼叫列表的节点内容为CallInfo,而CallInfo中包含了每次视频申请的具体属性,其中包含了此次呼叫生成的路由表信息path,每个path节点内容为PortInfo,结构为:
protected int portNo;
protected String objId; protected String objIp;
protected String srcObjId; protected int outPort;
使用vtduColl来保存所有视频转发服务器的信息,每个节点包括本VTDU上所有视频接收端口列表,以及其可用状态,数据结构为:
protected String vtduId;
protected int state=StateType.RESPONDING;
protected Collection ports=null;//本VTDU上所有视频接收端口
使用nruColl来保存所有视频转发服务器的信息,每个节点包括本VTDU上所有视频接收端口列表,用于播放的客户端口列表,以及其可用状态,数据结构为:
protected String nruId;
protected int state=StateType.RESPONDING;
protected Collection portsRecv=null;//用于录像的本地接收端口列表
protected Collection portsSend=null;//用于播放的客户端口列表
3.2流程说明
3.2.1起点选择流程
起点选择流程,即选择路由表中选择第一个视频分发服务器(VTDU),选择的流程如图4所示。图4中,1、CU与VTDU绑定?是则进入2否则进入3;2、在所有VTDU中查找最合适的?是则成功,否则失败;3、查找最合适的绑定VTDU?是则成功,否则进入4;4、查找最合适的未绑定VTDU?是则失败,否则成功;
首先判断用户有没有和此视频分发服务器进行直接绑定,如果用户和某视频分发服务器进行了绑定,其所有的视频流的分发就需要用此服务器进行分发。如用户同时绑定了多个视频分发服务器,就需要在其中进行选择最合适的,最合适的VTDU查找流程如图5,找不到再到未绑定VTDU服务器中进行选择;
如果用户没有和任何的VTDU进行绑定,只需要在全部的VTDU中进行选择最合适的。
3.2.2终点选择流程
终点选择流程,即选择路由表中选择第一个视频分发服务器(VTDU),选择的流程如图6所示。
首先判断用户申请的视频服务器(PU)有没有和此VTDU进行直接绑定,如果用户和某VTDU进行了绑定,此PU的其所有的视频流的分发就需要用此类服务器进行分发。如PU同时绑定了多个视频分发服务器,就需要在其中进行选择最合适的,最合适的VTDU查找流程如图5,找不到再到未绑定VTDU服务器中进行选择最合适的;
如果PU没有和任何的VTDU进行绑定,只需要在全部的VTDU中进行选择最合适的。
3.2.3选择有源节点
在选择了起点和终点之后,如果起点和终点都没有用户所需要的视频源,则需要在所有的VTDU中进行有源的节点,由于在PU节点列表Collection puColl保存了所有PU视频的视频转发服务器的端口列表,根据负载均衡原理,在一组VTDU中查找输出最空闲的有源端口,并返回已知端口。
如果在此PU的节点列表中没有相关视频源,则需要到前端编码器进行新的视频申请,申请成功后,更新puColl中的数据结构,并在callColl中添加此次呼叫的信息,从而下次如果此次呼叫没有被中断,再有不同用户访问该视频点的图像时,只需通过此VTDU进行视频转发,不需要再到前端PU进行视频的申请,从而增加视频服务器的压力。
3.2.4选择最合适节点
在同时有多个VTDU可以选择的情况下,需要选择最合适的节点,其选择的步骤如下:
首先需要查找有视频源的VTDU节点,用户所查看的前端编码器(PU)的视频源能够从此VTDU进行转发,有就可以直接返回成功;如果没有则判断是否需要进行负载均衡,如需要,则寻找最空闲的VTDU进行转发,寻找结构示意图如图7,寻找最空闲的VTDU分为输入最闲和输出最闲两种,并且算法很相似,现就输入最闲的VTDU的选择是首先设置一个最大的整数值V,通过对所有符合条件的VTDU的设备进行遍历,根据每个设备的输入视频路数和当前的最大整数进行比较,如果此设备的视频输入数S小于此整数V,则把S赋给V,每次遍历设备的时候都会进行类似的比较,如果输入数大于V,则继续下一个VTDU,直到所有的VTDU被遍历完,此时的V就是这组VTDU设备中,视频输入数最少的,此VTDU也就是输入最空闲的。
如不需要进行负责均衡,则寻找最繁忙的VTDU进行转发,结构图和图7类似。
机译: 能够使用多种快门眼镜通过多种方式观看视频的视频显示设备及其控制方法
机译: 用于以多种方式利用视频缓冲器以将视频缓冲器扩展到多个窗口的方法和装置
机译: 可逆视频编码设备,可逆视频编码方式,可逆视频解码设备,可逆视频解码方式,是对记录介质的图像信号进行编码的可逆视频编码设备的空动态图像