基于视频监控的前端录像点播穿越NAT的方法转让专利

申请号 : CN200710195416.3

文献号 : CN101170687B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨萍黄俊王颖

申请人 : 武汉烽火网络有限责任公司

摘要 :

本发明属于网络通信技术领域,具体涉及一种基于视频监控的前端录像点播穿越NAT的方法。该方法通过媒体分发服务器来实现视频监控业务中的前端录像点播穿越NAT的功能。媒体分发服务器通过增加一个独立的点播服务器模块,对前端分配不同的TCP监听端口,并通过中心管理服务器告诉前端,由客户端和前端主动连接建立TCP连接,以传送RTSP信令消息。媒体分发服务器接收到客户端的RTSP信令通过必要的简单修改转发到前端完成RTSP信令的建立;RTP数据包的传送,只需客户端主动定时的向媒体分发服务器发送探测包即可。本发明实现简单方便、具可行性。客户端不需改变原有录像点播流程即可轻松穿越NAT,服务器端在客户端建立RTSP流程前无需分配任何资源,高效并易于扩展。

权利要求 :

1.一种基于视频监控的前端录像点播穿越NAT的方法,包括如下步骤:

(1)中心管理服务器收到前端的录像点播响应后,将其中携带的URL地址和PUID通知给媒体分发服务器,媒体分发服务器依据这些信息合成一个新的URL返回给中心管理服务器,中心管理服务器再将这个新的URL返回给客户端;

(2)客户端收到点播请求响应后,根据URL的IP地址和RTSP的知名端口554发起TCP连接;

(3)媒体分发服务器根据客户端和前端的数目,定义一个端口池;

(4)媒体分发服务器收到客户端RTSP的DESCRIBE请求后,从该请求的URL中提取出PUID,该PUID唯一标识一个前端,媒体分发服务器为该前端从端口池里取得一个没有被其它终端占用的端口,在这个端口上侦听并设置定时器,通过中心管理服务器将该端口通知给前端;

(5)媒体分发服务器在定时器超时前,在该端口收到前端的TCP连接,从而将客户端和所请求的前端对应起来,并继续完成RTSP的信令交互;否则释放之前所分配的资源;

(6)RTSP的信令交互完成后,客户端向媒体分发服务器发送媒体探测包,媒体分发服务器从该探测包获得客户端接收媒体数据报的真实IP地址和端口。

2.如权利要求1所述的基于视频监控的前端录像点播穿越NAT的方法,其特征在于:所述的客户端和前端处于私网,媒体分发服务器和中心管理服务器处于公网。

3.如权利要求1或2所述的基于视频监控的前端录像点播穿越NAT的方法,其特征在于:在步骤(4)中,媒体分发服务器将前端需要连接的端口号和PUID通知给中心管理服务器,中心管理服务器根据PUID将需要连接的媒体分发服务器的端口号和地址转发给前端,通知前端连接媒体分发服务器。

4.如权利要求1或2所述的基于视频监控的前端录像点播穿越NAT的方法,其特征在于:在步骤(5)中,媒体分发服务器将客户端请求的URL转成前端对应的URL,转发DESCRIBE请求给前端,前端发送DESCRIBE回应给媒体分发服务器,媒体分发服务器转发DESCRIBE回应给客户端,客户端发起SETUP请求,媒体分发服务器转发SETUP请求给前端,前端发送SETUP回应给媒体分发服务器,媒体分发服务器转发SETUP回应给客户端。

5.如权利要求1或2所述的基于视频监控的前端录像点播穿越NAT的方法,其特征在于:在步骤(6)中,客户端向媒体分发服务器的发送端口号发送探测包,客户端发起PLAY请求,媒体分发服务器转发PLAY请求给前端,前端发送PLAY回应给媒体分发服务器,媒体分发服务器转发PLAY回应给客户端,前端发送媒体数据包到媒体分发服务器,媒体分发服务器将接收到的媒体数据转发给探测包实际远端地址,客户端发起TEARDOWN请求,媒体分发服务器转发TEARDOWN请求给前端,前端发送TEARDOWN回应给媒体分发服务器,媒体分发服务器转发TEARDOWN回应给客户端,结束点播。

说明书 :

技术领域

本发明属于网络通信技术领域,具体涉及一种基于视频监控的前端录像点播穿越NAT的方法。

背景技术

随着internet网络的迅速发展,IP地址短缺已成为一个十分突出的问题。很多局域网内部使用私有IP,私有网络的数量和规模越来越大。与此同时,随着技术的不断发展,基于宽带技术的网络视频监控也逐步得到推广使用,其应用领域和应用的灵活性也已经远远超出传统的安防监控所定义的范畴。NAT要求整个服务的连接是从内网向外网主动发起的,而外网的用户无法直接主动向内网的服务发起连接请求,大量的客户端CU和前端PU常常位于NAT之后,为了能够使视频监控业务正常的开展,穿越NAT成为一个必须待以解决的问题。
NAT影响到网络通信主要有两方面:一方面,私网内设备都采用内部IP地址,虽然经过NAT可以将IP层的地址转换为外部地址,但是对于应用层消息中的私有IP地址却无能为力。
另一方面,私网设备只有在向外部主动发起连接时,才会被分配到合法IP和端口号。若不做特殊处理,设备对外部网络来说是不可见的,也无法接受外网发来的呼叫请求,当呼叫从外网呼叫内网时,由于内网的地址是不可见的,故呼叫无法到达目的终端。
RTSP协议是一个应用级协议,控制实时数据的发送,使实时数据(如音频与视频)的受控、点播成为可能。实现RTSP的系统必须支持通过TCP传输RTSP,RTSP服务器的缺省端口都是554。
RTSP协议要求终端之间使用IP地址和数据端口来建立数据通信通道。NAT工作于IP层,而RTSP协议是应用层协议,在消息的头部中带有建立呼叫连接及媒体通道必须的IP地址和端口等信息。
这样所带来的问题是:从信令的角度,处于外网中的用户不能呼叫处于内网中的用户;处于内网中的用户呼叫处于外网中的用户时,可能收不到响应;从媒体的角度,无论是内网还是公网用户发起的呼叫,公网用户的媒体流都不能正确路由至内网中SIP终端上。当终端都处于私网时,互相之间无法看到,终端之间发送的请求和响应都不能正确到达目的地,无论是信令还是媒体都不能正常通信。

发明内容

本发明的目的在于针对视频监控应用中现有技术所存在的上述问题,提供一种易于实现的前端录像点播穿越NAT的方法,该方法应用于客户端和前端都在私网的情形下。
本发明的技术方案如下:一种基于视频监控的前端录像点播穿越NAT的方法,包括如下步骤:
(1)中心管理服务器收到前端的录像点播响应后,将其中携带的URL地址和PUID通知给媒体分发服务器,媒体分发服务器依据这些信息合成一个新的URL返回给中心管理服务器,中心管理服务器再将这个新的URL返回给客户端;
(2)客户端收到点播请求响应后,根据URL的IP地址和RTSP的知名端口554发起TCP连接;
(3)媒体分发服务器根据客户端和前端的数目,定义一个端口池;
(4)媒体分发服务器收到客户端RTSP的DESCRIBE请求后,从该请求的URL中提取出PUID,该PUID可以唯一标识一个前端,媒体分发服务器为该前端从端口池里取得一个没有被其它终端占用的端口,在这个端口上侦听并设置定时器,通过中心管理服务器将该端口通知给前端;
(5)媒体分发服务器在定时器超时前,在该端口收到前端的TCP连接,从而将客户端和所请求的前端对应起来,并继续完成RTSP的信令交互;否则释放之前所分配的资源;
(6)RTSP的信令交互完成后,客户端向媒体分发服务器发送媒体探测包,媒体分发服务器从该探测包获得客户端接收媒体数据报的真实IP地址和端口。
如上所述的基于视频监控的前端录像点播穿越NAT的方法,其中,所述的客户端和前端都处于私网,媒体分发服务器和中心管理服务器处于公网。
如上所述的基于视频监控的前端录像点播穿越NAT的方法,其中,在步骤(4)中,媒体分发服务器将前端需要连接的端口号和PUID通知给中心管理服务器,中心管理服务器根据PUID将需要连接的媒体分发服务器的端口号和地址转发给前端,通知前端连接媒体分发服务器。
如上所述的基于视频监控的前端录像点播穿越NAT的方法,其中,在步骤(5)中,媒体分发服务器将客户端请求的URL转成前端对应的URL,转发DESCRIBE请求给前端,前端发送DESCRIBE回应给媒体分发服务器,媒体分发服务器转发DESCRIBE回应给客户端,客户端发起SETUP请求,媒体分发服务器转发SETUP请求给前端,前端发送SETUP回应给媒体分发服务器,媒体分发服务器转发SETUP回应给客户端。
如上所述的基于视频监控的前端录像点播穿越NAT的方法,其中,在步骤(6)中,客户端向媒体分发服务器的发送端口号发送探测包,客户端发起PLAY请求,媒体分发服务器转发PLAY请求给前端,前端发送PLAY回应给媒体分发服务器,媒体分发服务器转发PLAY回应给客户端,前端发送媒体数据包到媒体分发服务器,媒体分发服务器将接收到的媒体数据转发给探测包实际远端地址,客户端发起TEARDOWN请求,媒体分发服务器转发TEARDOWN请求给前端,前端发送TEARDOWN回应给媒体分发服务器,媒体分发服务器转发TEARDOWN回应给客户端,结束点播。
本发明的媒体分发服务器通过增加一个独立的点播服务器模块,对前端分配不同的TCP监听端口,并通过中心管理服务器通知前端,由客户端和前端主动连接建立TCP连接,以传送RTSP信令消息。媒体分发服务器接收到客户端的RTSP信令通过必要的简单修改转发到前端完成RTSP信令的建立;RTP数据包的传送,只需客户端主动定时的向媒体分发服务器发送探测包即可。本发明所提供的方法简单方便、具有可行性。客户端不需改变原有录像点播流程即可轻松穿越NAT,服务器端在客户端建立RTSP流程前无需分配任何资源,高效并易于扩展。

附图说明

图1为本发明的方法流程图。
图2为本发明所采用的系统结构图。

具体实施方式

下面结合附图和实施例对本发明进行详细的描述。
本发明主要在视频监控应用中,提供一种易于实现的前端录像点播穿越NAT的方法,该方法用于客户端和前端都在私网的情形下。录像点播通过采用RTSP协议来实现,实现RTSP的系统必须支持通过TCP传输RTSP。当客户端CU和前端PU都在NAT内时,没有办法直接在CU和PU之间建立TCP连接以传送RTSP信令以及媒体通道来进行录像点播,必须有一个处于公网的服务器来完成私网和公网地址的转换,本发明在视频点播系统中,采用媒体分发服务器VTDU来实现该服务器。由于客户端CU和前端PU在私网,建立TCP连接时,只能让客户端和前端充当TCP的CLIENT,媒体分发服务器作为TCP的SERVER。
在介绍本发明的方法之前,首先对系统组成进行说明:
客户端单元CU:用于浏览和控制远端视频及系统。
前端单元PU:用于媒体流信息、告警信息、控制信息的获取、缓存、编码、转发以及可能需要存储的所有设备组成的子系统。它包括:摄像机,云台,视频服务器,报警输入输出装置,本地数字视频录像机等。
媒体分发服务器VTDU:是网络视频监控中心平台系统的媒体处理单元,实现媒体流请求、媒体流接收、媒体流分发等功能。
中心管理服务器CMS:是网络视频监控中心平台系统核心调度服务器单元,是中心服务平台的核心单元,负责实现前端、客户端的接入、各单元的信令转发控制处理、报警信息的接收与处理以及业务支撑信息管理。
前端录像点播穿越NAT的过程如下:
一、录像查询信令(步骤1~4):查询录像文件列表。
二、录像点播信令(步骤5~10):获得某一个录像文件的URL地址。在这一步中,服务器实际上没有分配任何的资源。
三、RTSP录像点播(步骤11~35):RTSP点播流程。
第二步和第三步分开的好处在于,获得URL以后,可以有多次的点播动作,每个点播动作之间互不影响。并且第二步没有分配服务器资源,这样可以极大的提高服务器的效率。
具体流程说明如下,参见图1。
1)客户端向中心管理服务器发起录像查询请求(携带要查询的PUID)。
2)中心管理服务器向PU转发查询请求。
3)PU回应录像查询请求给中心管理服务器(返回文件列表)。
4)中心管理服务器回应录像查询请求给CU。
5)CU向中心管理服务器发起录像点播请求(携带要点播的PUID和文件信息)。
6)中心管理服务器向PU转发点播请求。
7)PU回应点播请求给中心管理服务器(返回依据文件信息生成的URL)。
8)中心管理服务器向媒体分发服务器发起通知需要访问的URL(携带步骤7返回的URL和PUID)。
9)媒体分发服务器根据内部规则生成新的URL返回给中心管理服务器。
10)中心管理服务器回应点播请求给CU(返回步骤9中VTDU返回的新URL)。
11)CU建立根据URL中的服务器地址建立TCP连接。
12)CU发送DESCRIBE请求给媒体分发服务器。
13)媒体分发服务器从DESCRIBE的URL中获得PUID,准备好接受PU的TCP连接。将PU需要连接的端口号,和PUID通知给中心管理服务器。
14)中心管理服务器根据PUID将需要连接的媒体分发服务器的端口号和地址转发给PU,通知PU连接媒体分发服务器。
15)PU发送点播通知回应。
16)中心管理服务器向媒体分发服务器转发点播通知回应。
17)PU向媒体分发服务器发起TCP连接(使用步骤14中获得的媒体分发服务器的地址和端口号)。
18)媒体分发服务器将CU请求的URL转成PU对应的URL(后续的转发RTSP请求都需要这个转换,不再重复),转发DESCRIBE请求给PU。
19)PU发送DESCRIBE回应给媒体分发服务器。
20)媒体分发服务器转发DESCRIBE回应给CU。
21)CU发起SETUP请求(携带CU的数据接收端口号)。
22)媒体分发服务器转发SETUP请求给PU(将接收端口号改成媒体分发服务器的接收端口号)。
23)PU发送SETUP回应给媒体分发服务器(携带PU的数据发送端口号)。
24)媒体分发服务器转发SETUP回应给CU(将发送端口号改为媒体分发服务器的发送端口号)。
25)CU向媒体分发服务器的发送端口号发送探测包(这一步骤是针对CU也处于NAT内)。
26)CU发起PLAY请求。
27)媒体分发服务器转发PLAY请求给PU。
28)PU发送PLAY回应给媒体分发服务器。
29)媒体分发服务器转发PLAY回应给CU。
30)PU发送媒体数据包到媒体分发服务器。
31)媒体分发服务器将接收到的媒体数据转发给步骤25中,探测包实际远端地址。如果没有收到探测包,就发送到步骤21中CU提供的接收端口号。
32)CU发起TEARDOWN请求。
33)媒体分发服务器转发TEARDOWN请求给PU。
34)PU发送TEARDOWN回应给媒体分发服务器。
35)媒体分发服务器转发TEARDOWN回应给CU,结束点播。
上述方法在流程设计中所考虑的关键点如下:
1.客户端的行为只需要查询得到对应的URL(步骤5)(这个URL应该由平台组织好了返回给客户端,不要由客户端去拼装,这样扩展性会更好,因为实际上客户端不需要知道任何URL的细节,只要用这个URL可以请求到点播的视频就行了),然后用这个URL发起标准的RTSP请求(步骤11,12,21,26),就可以得到录像的视频。
2.因为前端处于NAT内,客户端不可能连接到前端进行点播。这样借助一个中间的公网服务器(本发明由媒体分发服务器VTDU来完成)。将应该发给PU的请求发给媒体分发服务器,然后由媒体分发服务器转发给PU。同样的因为PU在NAT内,媒体分发服务器也没有办法直接连接到PU。这就需要PU主动的向媒体分发服务器发起tcp连接(步骤17)。而后媒体分发服务器在这个已经建立好的连接上,发送RTSP信令(步骤18,22,27)。因为媒体分发服务器也没有办法直接通知PU来主动建立TCP连接,所以在媒体分发服务器在收到CU的RTSP请求时,需要通过中心管理服务器来间接告诉PU(步骤13,14)。
3.对于CU查询时获得的URL地址应该是访问媒体分发服务器的地址,而原本由PU返回的是访问PU的URL地址,这样需要在这两个地址之间做一个转换。当中心管理服务器收到PU返回的录像点播请求回应时,将其中携带的URL地址和PUID通知给媒体分发服务器(步骤8),媒体分发服务器依据这些信息合成一个新的URL(步骤9中的url1)返回给中心管理服务器(步骤9)。中心管理服务器再将这个新的URL返回给CU(步骤10)。这里之所以要添加9、10两步,在于媒体分发服务器可以根据自己的映射方式来生成URL,只需要媒体分发服务器能够依据新的URL获得原始的URL和PUID。这样可以有更好的扩展性。
4.当CU也在NAT内时,因为要接收中间服务器转发来的点播流,需要主动定时的向中间服务器发送探测包(步骤25)。
本发明所采用系统的结构图,如图2所示。
本发明在视频点播系统中,采用媒体分发服务器VTDU来实现该服务器,主要能体现出设计的模块化、独立性和易实现性。
1.模块化
由图2可以看出,媒体分发服务器的信令模块和媒体模块之间采用TCP通信,实现录像点播穿越NAT功能时,只需加入一个独立的模块(图中黄色模块),该模块与信令模块仍采用TCP通信。
2独立性
如上所述,Vod服务器模块只与媒体分发服务器的信令模块有简单通信,与媒体模块完全独立,易于维护和扩展。
3易实现性
Vod服务器模块对RTSP消息基本上只需要透传,无需解析即可实现。