流媒体服务器与终端间的通讯方法

文档序号:7870925阅读:474来源:国知局
专利名称:流媒体服务器与终端间的通讯方法
技术领域
本发明涉及通讯技术领域,具体讲是一种流媒体服务器与终端间的通讯方法。
背景技术
视频监控是安全防范系统的重要组成部分,是一种防范能力较强的综合系统。视频监控以其直观、准确、及时和信息内容丰富而广泛应用于许多场合。近年来,随着计算机、网络以及图像处理、传输技术的飞速发展,视频监控技术也有了长足的发展。视频监控系统有以下几项功能要求安全性要求比较高;服务器平台构架简单方便;无论是PC机还是移动设备都能随时随地的对监控内容进行查看。所述视频监控系统设计方向之一满足上述三点功能要求的同时,如何使流媒体服务器与终端间的通讯过程做到安全、可靠提出了更高的要求。

发明内容
本发明要解决的技术问题是,提供一种安全、可靠的流媒体服务器与终端间的通讯方法。本发明的技术方案是,本发明流媒体服务器与终端间的通讯方法,包括以下步骤a、流媒体服务器在响应了终端的PLAY请求后,设定定时器开始计时;b、终端在收到流媒体服务器的PLAY响应后开始以一定时间间隔周期性向服务器发送心跳包直到会话结束; C、若流媒体服务器收到终端发送的心跳包,定时器重新计时并分析所接收到的心跳包以从心跳包中获取终端相对应的公网IP地址与端口号或终端的NAT设备的公网IP地址与NAT设备的端口号,流媒体服务器根据所述IP地址与对应的端口号向终端发送流数据;若流媒体服务器在定时器计时超过一定预设值后仍没有收到心跳包则关闭会话。采用上述结构后,本发明与现有技术相比,具有以下优点本发明流媒体服务器与终端间的通讯方法的特点在于能够对流媒体服务器与终端之间RTSP协议连接建立过程进行了扩展,使得现有普通的实现RTSP的终端不能正确的访问流媒体服务器,必须在实现本发明中的心跳机制才能对流媒体服务器进行正常访问,从而使本发明流媒体服务器与终端间的通讯方法具有安全、可靠的优点;本发明通过在流媒体服务器端与终端对RTSP连接的建立过程做简单修改,还能够达到下面的三个有益效果I)流保活功能,如果终端的网络环境异常,发生断网情况,流媒体服务器能及时发现,并停止对其进行服务,避免服务器资源浪费;2)任何要访问实现了本发明所述的流媒体服务器系统的终端,必须要实现本发明所述的心跳机制,本发明仅在终端与服务器做出少量修改,就能使流媒体服务器安全性得到很大的提闻;
3)访问流媒体服务器的终端既可以处在公网环境中,也可以处在含有NAT设备的内网环境中。作为改进,所述心跳包是对RTP数据包进行字段扩展构成的,在RTP数据包的扩展字段中填入流媒体服务器所需的验证信息,并由UDP发送,这样,对现有终端与服务器软件仅需做出少量修改,而硬件部分则可直接使用,大大便利了本发明的实施和推广使用。作为改进,所述预设值为所述时间间隔,这样,预设值和时间间隔相等,有利于流媒体服务器及时做出反应。


图1是本发明流媒体服务器与终端间的通讯方法的方框流程图。图2是本发明流媒体服务器与终端间的通讯方法的终端发送的心跳包结构示意图。
具体实施例方式下面结合附图对本发明作进一步说明。本发明流媒体服务器与终端间的通讯方法,包括以下步骤a、流媒体服务器在响应了 终端的PLAY请求后,设定定时器开始计时;b、终端在收到流媒体服务器的PLAY响应后开始以一定时间间隔周期性向服务器发送心跳包直到会话结束;C、若流媒体服务器收到终端发送的心跳包,定时器重新计时并分析所接收到的心跳包以从心跳包中获取终端相对应的公网IP地址与端口号或终端的NAT设备的公网IP地址与NAT设备的端口号,流媒体服务器根据所述IP地址与对应的端口号向终端发送流数据;若流媒体服务器在定时器计时超过一定预设值后仍没有收到心跳包则关闭会话。所述预设值为所述时间间隔,预设值和时间间隔均为人为设定。如图1所示I)终端与流媒体服务器建立连接的过程与普通的RTSP点播流程基本是一致的,即终端与流媒体服务经过OPTIONS、DESCRIBE、SETUP、PLAY等交互后才完成连接的建立。2)终端视频端口(client_port):端口号分别为59532、59533,其中59532端口用于接收视频流数据;59533用于与流媒体服务器进行RTCP消息交互。由于本例中的流媒体服务器用于视频监控,没有音频流数据,所以终端并没有分配端口用于接收音频数据。3)流媒体服务器在响应终端的PLAY请求后并没有立即向终端发送视频流数据,而是在设定一个定时器,等待终端的心跳包,如果在定时器规定的时间里收到心跳包流媒体服务器才开始向终端发送视频流数据,如果在规定的时间(所述预设值)里没有收到心跳包,则关闭与终端的连接。4)流媒体服务器收到终端的心跳包后,则重新设定定时器并对心跳包进行分析,从心跳包中提取终端对应的公网IP地址与端口号或终端的NAT设备的公网IP地址与NAT设备的端口号。流媒体服务器根据所获取的IP地址和端口号向终端发送视频流数据并进行RTCP消息交互。5 )流媒体服务器向终端发送视频流数据后,终端仍以固定的时间间隔向流媒体服务器发送心跳包,如果流媒体服务器在其设定的时间间隔内没有收到终端的心跳包,则认为终端处于离线状态,流媒体服务器会关闭与对应的终端的连接。所述心跳包是对RTP数据包进行字段扩展构成的,在RTP数据包的扩展字段中填入流媒体服务器所需的验证信息,并由UDP发送。心跳包的结构如图2所示,各字段的说明如下V =RTP协议版本号,占2位,当前版本号为2 ;P :填充标志,占一位,填O ;X :扩展标志,占一位,填I ;CC CSRC计数器,占4位,指示CSRC标识的个数,填I ;M :标志位,占一位,填O ;PT :负载类型,OxOlRTP, 0x02RTCP ;sequence number :包序号,占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增I。接收者通过序列号来检测报文丢失情况,重新排序报文,恢复数据;timestamp 占32位,反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制;SSRC :同步源标识符,暂时不用;

CSRC :贡献源标识符,暂时不用;identifier :标识,占 32 位,固定填 Oxfafbfcfd ;IPCID :网络摄像头ID号,占16位,闻位补O ;length :心跳包有效字段的字节数;packettype 0表示初始化包,I表示维持包;reserved :保留字段,占 16 位;本发明所述的心跳包是对RTP数据包进行字段扩展实现的,并由UDP发送,将所构造的心跳包加上m)P头部发送出去。流媒体服务器对终端的PLAY请求响应后,并没有向终端发送视频流数据,而是处于等待状态,当含有初始化标志的心跳包到达后,并经过分析过,验证心跳包正确后,流媒体服务器才将视频流数据发送到终端。终端收到流媒体服务器发送的视频流数据后,将心跳包的packettype字段设置为“维持”,直到连接结束,此时心跳包的作用为在线保活。流媒体服务器对心跳包的分析过程为流媒体服务器收到心跳包后首选获取心跳中的identifier字段,如果identifier字段正确,则认为收到的正确的心跳包,然后再检测packettype字段,如packettype标识为“初始化包”,则流媒体服务器从承载心跳包的UDP数据包头部获取源IP地址及端口号,并根据所获取的IP地址与端口号向终端发送视频流数据,如果在规定的时间内没有收到“初始化包”,则关闭连接,如果packettype标识为“维持包”,则流媒体只更新定时器,如果在规定的时间内没有收到“维持包”则流媒体服务器认为终端处于离线状态,关闭连接。在本例中,流媒体服务器端用于接收心跳包的端口分别为6970、6971,其中6970用于接收终端RTP心跳包,6971用于接收终端RTCP心跳包。终端59532、59533分别用于发送RTP心跳包与RTCP心跳包。
终端收到PLAY请求的响应后,开始用59532端口向流媒体服务器6970端号发送初始化心跳包。流媒体服务器验证心跳包正确后,从承载心跳包的UDP数据包头部获取心跳包的源IP地址及端口号,并以6970端口向获取的IP地址和端口号发送视频流数据。这样做的目的是,如果终端处于公网环境中,则流媒体服务器获得的IP地址为终端的公网地址,获取的端口号为59532,视频流数据可以正常的由终端的59532端口接收;如果终端处于含有NAT设备的内网环境中,则流媒体服务器获取的IP地址为终端的NAT设备的公网地址,端口号为也NAT设备映射后的端口号,根据NAT设备的工作原理,流媒体服务器由6970端口发送的视频流数据也可以正常的由终端59532端口接收。RTCP心跳包过程与上述RTP心跳包过程类似。如果要访问实现本发明的流媒体服务器的终端也要实现本发明所述的心跳包机制,并且无论终端处于公网环境还是含有NAT设备的内网环境都可以正常对流媒体服务器进行访问,而没有实 现本发明的终端则无法对流媒体服务器进行访问。
权利要求
1.一种流媒体服务器与终端间的通讯方法,其特征在于,包括以下步骤 a、流媒体服务器在响应了终端的PLAY请求后,设定定时器开始计时; b、终端在收到流媒体服务器的PLAY响应后开始以一定时间间隔周期性向服务器发送心跳包直到会话结束; C、若流媒体服务器收到终端发送的心跳包,定时器重新计时并分析所接收到的心跳包以从心跳包中获取终端相对应的公网IP地址信息与对应的端口号公网IP地址与端口号或终端的NAT设备的公网IP地址与NAT设备的端口号,流媒体服务器根据所述IP地址与对应的端口号向终端发送流数据;若流媒体服务器在定时器计时超过一定预设值后仍没有收到心跳包则关闭会话。
2.根据权利要求1所述的流媒体服务器与终端间的通讯方法,其特征在于,所述心跳包是对RTP数据包进行字段扩展构成的,在RTP数据包的扩展字段中填入流媒体服务器所需的验证信息,并由UDP发送。
3.根据权利要求1所述的流媒体服务器与终端间的通讯方法,其特征在于,所述预设值为所述时间间隔。
全文摘要
本发明公开了一种安全、可靠的流媒体服务器与终端间的通讯方法,包括以下步骤a、流媒体服务器在响应了终端的PLAY请求后,设定定时器开始计时;b、终端在收到流媒体服务器的PLAY响应后开始以一定时间间隔周期性向服务器发送心跳包直到会话结束;c、若流媒体服务器收到终端发送的心跳包,定时器重新计时并分析所接收到的心跳包以从心跳包中获取终端相对应的公网IP地址信息与对应的端口号公网IP地址与端口号或终端的NAT设备的公网IP地址与NAT设备的端口号,流媒体服务器根据所述IP地址与对应的端口号向终端发送流数据;若流媒体服务器在定时器计时超过一定预设值后仍没有收到心跳包则关闭会话。
文档编号H04L29/06GK103051635SQ201210587428
公开日2013年4月17日 申请日期2012年12月28日 优先权日2012年12月28日
发明者何加铭, 傅晓茜, 龚松春, 刘晓东, 屈龙, 樊玲慧, 胡凌鹏, 刘睿, 赵玉凤 申请人:宁波新然电子信息科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1