一种视频监控系统实现媒体穿越NAT的方法和系统转让专利

申请号 : CN200810216944.7

文献号 : CN101729862A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 关君靳自鸣陕毅陈伟

申请人 : 中兴通讯股份有限公司

摘要 :

本发明提出了一种视频监控系统实现媒体穿越NAT的方法和系统,通过建立客户端到监控前端的TCP连接,进入RTSP信令交互及播放流程,所述监控前端根据信令地址通知所述客户端发送RTSP信令穿越包,所述客户端根据收到的媒体获取响应消息,通过对RTSP信令扩展实现所述监控前端到所述客户端侧的媒体穿越,实现了通过NAT设备直接完成媒体RTSP信令和媒体码流的穿越,本发明监控前端的配置以及扩展的RTSP信令简单实用,而且媒体信令及码流都不需要通过流媒体服务器中转,利用现有的公网和私网承载视频监控系统完成媒体穿越NAT设备,可以让用户使用更为方便,成本也更低廉。

权利要求 :

1.一种视频监控系统实现媒体穿越NAT的方法,其特征在于,监控前端和客户端通过NAT设备直接完成媒体RTSP信令和媒体码流的穿越,包括如下步骤:A、建立所述客户端到所述监控前端的TCP连接,进入RTSP信令交互及播放流程,所述监控前端根据信令地址通知所述客户端是否发送RTSP信令穿越包,是,所述客户端经过公网IP地址和端口号发送RTSP信令穿越包,否则直接发送RTSP信令;

B、所述客户端根据收到的媒体获取响应消息,通过对RTSP信令扩展实现所述监控前端到所述客户端侧的媒体穿越。

2.根据权利要求1所述的方法,其特征在于,还包括如下步骤:C、监控前端停止向客户端发送媒体码流,播放停止。

3.根据权利要求1所述的方法,其特征在于,所述步骤A具体包括如下步骤:A1、在直连播放前,所述客户端从业务平台获取所述监控前端的IP地址,RTSP端口号,URL,从而建立所述TCP连接;

A2、所述客户端向所述监控前端发送视频监控请求消息,所述客户端判断是否具有向所述监控前端发送NAT穿越包的能力和所述客户端的信令地址;

A3、所述监控前端根据所述客户端的信令地址和收到的信令源地址是否相同判断是否通知所述客户端发送RTSP信令穿越包。

4.根据权利要求3所述的方法,其特征在于,所述步骤A和步骤B之间进一步包括如下步骤:S1、监控前端向客户端发送媒体描述信息消息;

S2、客户端向监控前端发送请求获取媒体消息。

5.根据权利要求1所述的方法,其特征在于,所述步骤B具体包括如下步骤:B1、所述监控前端向所述客户端返回媒体获取响应消息,所述响应消息包括是否要求所述客户端发送媒体码流穿越包和所述监控前端的公网IP地址和端口号;

B2、所述客户端根据收到的所述媒体获取响应消息,向所述监控前端发送媒体码流穿越包;

B3、所述监控前端收到所述客户端的媒体码流穿越包后,从Socket中获取所述客户端的公网IP地址和端口号,并保存。

6.根据权利要求5所述的方法,其特征在于,所述步骤B还包括如下步骤B4、所述客户端向所述监控前端发送开始播放请求;

B5、所述监控前端向所述客户端发送开始播放响应;

B6、所述监控前端向所述客户端发送媒体码流。

7.一种视频监控系统实现媒体穿越NAT的系统,其特征在于,包括:监控前端,客户端,业务平台,NAT设备,其中,所述监控前端,用于将视频数据编码,发送至网络;

所述客户端,用于从所述业务平台获取所述监控前端的IP地址,RTSP端口号,URL,建立所述客户端到所述监控前端的TCP连接;

所述业务平台,用于所述监控前端和客户端的注册和管理;

所述NAT设备,用于支持私网IP地址和公网IP地址的不同端口映射。

8.根据权利要求7所述的系统,其特征在于,所述监控前端与摄像头连接,用于摄取视频数据。

9.根据权利要求8所述的系统,其特征在于,所述客户端和监控前端分别位于公网或私网,从所述公网发送数据给所述私网,媒体RTSP信令或媒体码流穿越所述NAT设备。

10.根据权利要求9所述的系统,其特征在于,所述客户端和所述监控前端分别位于各自的私网,媒体RTSP信令和媒体码流穿越所述NAT设备。

说明书 :

技术领域

本发明涉及网络媒体发送技术,具体涉及一种视频监控系统实现媒体穿越NAT的方法和系统。

背景技术

现有技术中,网络监控系统通过内部互联网(Intranet)和国际互联网(Internet)实现媒体的传输从而进行远程的视频监控。用户无论身在何处,都可利用电脑或者电视登陆互联网接通远端的监控系统,实现实时图像和声音传输。视频监控以其直观、方便、信息内容丰富而广泛应用于许多场合,例如公安局,银行,学校,医院,公路等。近年来,随着计算机、网络以及图像处理、传输技术的飞速发展,视频监控技术也有长足的发展。
Internet的迅速发展以及IPv4地址数量的限制使得网络地址翻译(NAT,Network Address Translation)设备得到广泛应用。NAT设备允许处于同一NAT后的多台主机共享一个公网(本发明将处于同一NAT后的网络称为私网,处于NAT前的网络称为公网)IP地址。一个私网IP地址通过NAT设备与公网的其他主机通信。由私网内主机主动发起连接,数据包经过NAT地址转换后送给公网上的服务器,连接建立以后可双向传送数据,NAT设备允许私网内主机主动向公网内主机发送数据,但却禁止反方向的主动传递,在视频监控系统中,需要不同私网内的主机进行互联,穿越NAT的问题必须解决。
现有技术中,专利文献包括:专利申请号为200710195416.3和200610021989的中国专利申请,公开了流媒体穿越NAT的方法,但需要利用媒体分发服务器进行媒体转发;随着网络的发展,许多建筑物已经具备局域网和广域网,如何利用现有的公网和私网承载视频监控系统实现媒体数据穿越公网和私网成为需要解决的问题。

发明内容

本发明的目的是,针对上述现有技术存在的缺陷提供了一种视频监控系统实现媒体穿越NAT的方法及系统,通过在NAT设备上增加相关配置,同时扩展RTSP(Real Time Streaming Protocol实时流媒体协议)信令字段,媒体不需要经过中转,通过直连方式实现媒体信令和媒体的穿越。
本发明的技术方案如下:
一种视频监控系统实现媒体穿越NAT的方法,其中,监控前端和客户端通过NAT设备直接完成媒体RTSP信令和媒体码流的穿越。
所述的方法,其中,包括如下步骤:
A、建立所述客户端到所述监控前端的TCP连接,进入RTSP信令交互及播放流程,所述监控前端根据信令地址通知所述客户端是否发送RTSP信令穿越包,是,所述客户端经过公网IP地址和端口号发送RTSP信令穿越包,否则直接发送RTSP信令;
B、所述客户端根据收到的媒体获取响应消息,通过对RTSP信令扩展实现所述监控前端到所述客户端侧的媒体穿越。
所述的方法,其中,还包括如下步骤:C、监控前端停止向客户端发送媒体码流,播放停止。
所述的方法,其中,所述步骤A具体包括如下步骤:
A1、在直连播放前,所述客户端从业务平台获取所述监控前端的IP地址,RTSP端口号,URL,从而建立所述TCP连接;
A2、所述客户端向所述监控前端发送视频监控请求消息,所述客户端判断是否具有向所述监控前端发送NAT穿越包的能力和所述客户端的信令地址;
A3、所述监控前端根据所述客户端的信令地址和收到的信令源地址是否相同判断是否通知所述客户端发送RTSP信令穿越包。
所述的方法,其中,所述步骤A和步骤B之间进一步包括如下步骤:
S1、监控前端向客户端发送媒体描述信息消息;
S2、客户端向监控前端发送请求获取媒体消息;
所述的方法,其中,所述步骤B具体包括如下步骤:
B1、所述监控前端向所述客户端返回媒体获取响应消息,所述响应消息包括是否要求所述客户端发送媒体码流穿越包和所述监控前端的公网IP地址和端口号;
B2、所述客户端根据收到的所述媒体获取响应消息,向所述监控前端发送媒体码流穿越包;
B3、所述监控前端收到所述客户端的媒体码流穿越包后,从Socket中获取所述客户端的公网IP地址和端口号,并保存。
所述的方法,其中,所述步骤B还包括如下步骤
B4、所述客户端向所述监控前端发送开始播放请求;
B5、所述监控前端向所述客户端发送开始播放响应;
B6、所述监控前端向所述客户端发送媒体码流。
一种视频监控系统实现媒体穿越NAT的系统,其中,包括:监控前端,客户端,业务平台,NAT设备,其中,
所述监控前端,用于将视频数据编码,发送至网络;
所述客户端,用于从所述业务平台获取所述监控前端的IP地址,RTSP端口号,URL,建立所述客户端到所述监控前端的TCP连接;
所述业务平台,用于所述监控前端和客户端的注册和管理;
所述NAT设备,用于支持私网IP地址和公网IP地址的不同端口映射。
所述的系统,其中,所述监控前端与摄像头连接,用于摄取视频数据。
所述的系统,其中,所述客户端和监控前端分别位于公网或私网,从所述公网发送数据给所述私网,媒体RTSP信令或媒体码流穿越所述NAT设备。
所述的系统,其中,所述客户端和所述监控前端分别位于各自的私网,媒体RTSP信令和媒体码流穿越所述NAT设备。
本发明所提供的一种视频监控系统实现媒体穿越NAT的方法和系统,与现有技术相比较,本发明在视频监控系统中,通过扩展RTSP信令的字段,以及NAT设备的配置,有效的解决了监控前端到客户端之间直连情况下的媒体穿越NAT的问题,监控前端的配置以及扩展的RTSP信令简单实用,而且媒体信令及码流都不需要通过流媒体服务器中转,利用现有的公网和私网承载视频监控的系统可以让用户使用更为方便,成本也更低廉。

附图说明

图1是本发明视频监控系统实现媒体穿越NAT的方法和系统应用场景1的示意图;
图2是本发明视频监控系统实现媒体穿越NAT的方法和系统应用场景2的示意图;
图3是本发明视频监控系统实现媒体穿越NAT的方法和系统应用场景3的示意图;
图4是本发明视频监控系统实现媒体穿越NAT的方法和系统中媒体播放流程图。

具体实施方式

本发明提供了一种视频监控系统实现媒体穿越NAT的方法,为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。
为了解决在监控前端到客户端之间直连情况下的媒体穿越NAT的问题,本发明的核心是:通过在监控前端侧的NAT设备上增加配置端口号和IP地址,同时扩展RTSP信令字段,实现客户端到监控前端的RTSP信令穿越,然后通过对RTSP信令扩展来实现监控前端到客户端侧的媒体穿越,以达到监控前端和客户端通过NAT设备直接完成媒体穿越,而不需要通过流媒体服务器中转来完成媒体信令及码流的转发,解决了媒体播放信令无法穿越NAT的问题。本发明实现媒体穿越NAT的系统主要包括,监控前端,客户端,业务平台,NAT设备,其中,监控前端,连接摄像头,对摄像头输入的视频数据编码,发送至网络;客户端,接受媒体码流,解码,显示图像,可以为终端设备,也可以为运行在电脑上的客户端程序;业务平台,用于监控前端,客户端的注册以及管理等;NAT设备,客户端侧的NAT设备无特殊的要求,监控前端侧的NAT设备需要支持NAT配置,用于支持私网IP地址和公网IP地址的不同端口映射。其主要流程包括客户端和监控前端的RTSP信令交互流程以及媒体码流发送流程,具体步骤为:
A、在直连播放前,客户端从业务平台获取监控前端的IP地址,RTSP端口号,URL,从而建立客户端到监控前端的TCP连接;
B、客户端向监控前端发送视频监控请求消息(RTSP DESCRIBE请求),RTSP的URL中包含监控前端的相关信息。DESCRIBE扩展信令中,包括客户端是否具有向监控前端发送NAT穿越包的能力,自己的信令地址。监控前端会根据这个地址和收到的信令的源地址是否一样来判断是否通知客户端发送NAT穿越包,如果一样,直接发送,否则需要发送NAT穿越包;
C、监控前端向客户端发送媒体描述信息消息(RTSP DESCRIBE响应);
D、客户端向监控前端发送请求获取媒体消息(RTSP SETUP请求);
E、监控前端向客户端返回媒体获取响应消息(RTSP SETUP响应),其中包括是否要求客户端发送NAT穿越包以及监控前端经过NAT后的公网IP地址和端口号;
SETUP响应消息中增加扩展字段,包括监控前端是否要求客户端发送NAT穿越包,发送的时间间隔,监控前端的媒体端口,客户端发送NAT穿越包的目的地址和端口号;
F、客户端根据收到的媒体获取响应消息(SETUP响应消息)判断是否需要向监控前端发送NAT穿越包,如果需要则客户端使用准备接受媒体的Socket向监控前端发送NAT穿越包,NAT穿越包的时间间隔由客户端和监控前端约定,可以由监控前端通过SETUP响应消息中的穿越包的间隔时间这个扩展参数制定,也可采用其他方式;
G、监控前端收到客户端的NAT穿越包后,从Socket中获取客户端的公网IP地址和端口号,并保存;
H、监控前端向客户端发送NAT穿越包响应。NAT穿越包响应中包含穿越包编号;
I、客户端向监控前端发送开始播放请求(RTSP PLAY请求);
J、监控前端向客户端发送开始播放响应(RTSP PLAY响应);
K、监控前端向客户端发送媒体码流,如果客户端发送了NAT穿越包,则监控前端使用客户端的公网IP地址和端口号向客户端发送媒体码流;否则,监控前端使用SETUP请求中的客户端的IP地址和端口号向客户端发送媒体码流;
需要停止播放时,继续下面的流程:
L、客户端向监控前端发送停止监控请求(RTSP Teardown请求);
M、监控前端向客户端发送停止监控响应(RTSP Teardown响应);
N、监控前端停止向客户端发送媒体码流。
根据上面所描述的客户端和监控前端的RTSP信令交互流程以及媒体码流发送流程,该方法可应用于如图1,2,3所示的应用场景中,其中,如图1所示,监控前端101位于私网102中,客户端106以及平台105位于公网104中,公网和私网之间有NAT设备103,这种连接方式中,需要考虑客户端到监控前端的RTSP信令如何穿越NAT的问题,而监控前端到客户端的媒体码流则可以直接发送,无需考虑穿越问题。
如图2所示,客户端201位于私网202中,监控前端206和位于平台205位于公网204中,公网和私网之间存在NAT设备203,监控前端位于公网,客户端位于私网,这种连接方式中,客户端到监控前端的RTSP信令可以直接发送,需要考虑监控前端到客户端的媒体如何穿越NAT的问题。
如图3所示,监控前端301位于私网302中,客户端308位于私网307中,平台305位于公网304中,公网304与私网302之间存在NAT设备303,公网304与私网307之间存在另一个NAT设备306;监控前端和客户端位于不同的私网,这是最复杂也是比较常用的一种方式,这种方式需要考虑客户端到监控前端的RTSP信令如何穿越,以及监控前端到客户端的媒体如何穿越的问题。
在图1和图3描述的应用场景中,可以在监控前端侧的NAT设备,分别为NAT设备103和303上增加相应的静态NAT配置实现客户端到监控前端的RTSP信令的穿越,图2中的RTSP信令是由客户端连至监控前端,不存在配置NAT设备穿越的问题。监控前端和客户端处于同一私网或者同时处于公网中时不需要配置NAT设备。
所以,本发明的方法实现客户端到监控前端的RTSP信令穿越,然后通过对RTSP信令扩展来实现监控前端到客户端侧的媒体穿越,以达到监控前端和客户端通过NAT设备直接完成媒体穿越,而不需要通过流媒体服务器中转来完成媒体信令及码流的转发。
下面以图4为例详细说明本发明的媒体播放流程,其中监控前端401和客户端402的信令交互的具体步骤如下:
S1、监控前端开始运行即向负责业务的平台注册,注册时携带本地IP地址和RTSP端口号,平台记录监控前端的外网IP地址以及RTSP端口号;
S2、客户端需要播放码流时,连接平台,得到IP地址,端口号以及URL;客户端根据这些信息向监控前端建立TCP连接,进入RTSP信令交互及播放流程,其流程对应图4中的403;
S3、连接建立后,客户端向监控前端发送视频监控请求消息404,也就是RTSP DESCRIBE请求,RTSP的URL中包含了监控前端402的编号以及请求的图像大小信息,DESCRIBE扩展信令中包含了客户端402是否具有向监控前端401发送NAT穿越包能力的字段,同时还包含了客户端402的信令的地址也就是公网的IP地址;
视频监控请求消息404的示例如下:
DESCRIBE
rtsp://172.16.100.190:554/000055010500000501.sdp?StreamID=1RTSP/1.0
CSeq:1
Accept:application/sdp
Authorization:Basic
Range:npt=now-
Content-length:0
User-Agent:ZTE MOC
x-SpeedupPlay:yes
x-NAT:192.168.1.17:554
参数x-NAT表示客户端通知监控前端自己有NAT穿越能力,并且自己的信令地址是:192.168.1.17:554;监控前端根据这个地址和收到信令的源地址是否一样来判断是否通知客户端发送NAT穿越包;
S4、监控前端401向客户端402返回媒体描述信息消息405即RTSPDESCRIBE响应消息;
S5、客户端402向监控前端401发送请求获取媒体消息406,即RTSPSETUP请求消息;
S6、监控前端401向客户端402发送媒体获取响应消息407,即RTSPSETUP响应消息,响应消息中做了扩展,扩展字段中包括监控前端是否要求客户端发送NAT穿越包,发送的时间间隔,监控前端的媒体端口,客户端发送NAT穿越包的目的地址和端口号。
媒体获取响应消息407消息的示例如下:
     RTSP/1.0 200 OK
     Server:ZXV10 PUSS/1.0
     Cseq:2
     Cache-Control:cache-control
     Session:1445520826657905223;timeout=51
     x-Dynamic-Rate:0
     x-KeepAliveInterval:30000
     Transport:RTP/AVP/UDP;unicast;destination=172.16.100.190;
client_port=6000-6001;
     server_port=6970-6971;mode=PLAY;ssrc=00000001
x-KeepAliveInterval:30000表示监控前端401要求客户端402发送NAT穿越包,且发送的时间间隔为30秒;通过Transport参数把监控前端401的媒体端口带给客户端402,其中,destination表示客户端402发送NAT穿越包的目的地址,server_port为端口号;
S7、媒体获取响应消息407中带回了监控前端401是否要求客户端402发送NAT穿越包的信息,如果需要,则客户端402创建准备接受从监控前端401发来的媒体的Socket,并利用此Socket向监控前端发送NAT穿越包408;其中NAT穿越包中包含RTSP的会话编号、监控前端的编号、媒体类型以及穿越包的编号,NAT穿越包的时间间隔由监控前端401为SETUP响应消息中的穿越包的间隔时间这个参数;
S8、监控前端401收到客户端的NAT穿越包后,从Socket中获取客户端402的公网IP地址和端口号,并保存;监控前端401向客户端402发送NAT穿越包响应消息409,NAT穿越包响应消息409中包含穿越包编号。
S9、客户端402向监控前端401发送开始播放请求消息410(RTSP PLAY请求);
S10、监控前端401向客户端402发送开始播放响应411(RTSP PLAY响应);
此时RTSP链接已经建立,监控前端401向客户端402发送媒体码流412,如果客户端402发送了NAT穿越包408,则监控前端401使用客户端的公网IP地址和端口号向客户端发送媒体码流;否则,监控前端401使用SETUP请求中的客户端402的IP地址和端口号向客户端发送媒体码流;
S11、需要停止播放码流时,客户端402向监控前端401发送停止监控请求消息413(RTSP Teardown请求);
S12、监控前端401向客户端402发送停止监控响应消息414(RTSPTeardown响应);
S13、监控前端401停止向客户端402发送媒体码流,如图4中的流程415。
综上所述,本发明通过扩展RTSP信令的字段,以及NAT设备的配置,有效的解决了在视频监控系统中媒体不需要经过中转的问题,达到了媒体直接穿越NAT设备。
应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。