一种适应多种网络状况的视频监控客户端系统的制作方法

文档序号:18407513发布日期:2019-08-10 00:33阅读:435来源:国知局
一种适应多种网络状况的视频监控客户端系统的制作方法

本发明属于视频监控领域,特别涉及视频监控客户端系统。



背景技术:

随着网络技术和多媒体技术的发展,视频监控越来越成为安全领域的最重要的应用之一。

实时视频播放无疑是视频监控最为重要的业务之一。由于安全行业的特殊要求,视频监控客户端通常需要支持7*24小时长时间不间断的实时视频播放。这就对视频监控客户端的稳定性和流畅性提出了极高的要求。

常见的视频监控客户端主要是部署在pc机上的一个应用程序。而在视频流的广域网传输中一旦网络状况发生了波动,则会对视频播放产生较大的影响,怎么使广域网的网络波动对视频质量的影响降到最低则是本发明的主要目的。



技术实现要素:

本发明要克服现有技术的上述缺点,提供一种视频监控客户端,使其能够适应不同的网络状况,在网络状况较差的情况下也能够保证视频的质量。

本发明解决其技术问题所采用的技术方案是:

一种适应多种网络状况的视频监控客户端,包括sip通信模块、udp通信模块、视频数据解析模块、视频数据丢包重传模块、视频播放模块、视频回放模块。所述sip通信模块采用sip+xml协议与服务器进行数据通信,所述udp通信模块接收视频数据包后交由视频数据解析模块进行数据解析,所述视频数据解析模块从视频流数据中提取出h264视频数据并对数据进行解析处理,所述视频播放模块将h264数据在界面上进行播放,所述视频数据丢包重传模块在视频数据包丢包时,完成视频数据的重传补包,所述视频回放模块请求历史视频回放。

首先视频监控客户端通过sip通信模块完成用户的登录与用户在线状态的保活。同时,也用于发送实时视频请求与视频回放请求。发送请求的内容包括,设备号、视频流传输用的udp端口号与请求的操作类型。

进一步,udp通信模块在sip通信模块发送视频请求之后,接收指定端口传来的udp视频流,并将视频流数据存入一级缓存区中待视频数据解析模块使用。

再进一步,视频数据解析模块通过解析udp通信模块存储在一级缓存区中的视频流数据,可以从不同种类的视频流中提取出h264视频数据,从而完成对不同种类设备不同种类视频流的播放,同时可以通过视频流数据包中的序列号得到丢失数据包的序列号与丢包数量,将发生丢包的序列号交于视频数据丢包重传模块,其余视频数据存储进二级缓存区等待丢包重传完毕。通过得到的实时丢包数量,利用丢包率对实时网络状况进行分析,通过一定时隙内接收到的数据包序列号可得出这段时间应接收到的数据包总数r(n),再通过数据包总数r(n)减去实际接收到的数据包数得到丢包数l(n),计算出丢包率f(n)=l(n)/r(n)。由于丢包率可能频繁变化,再对丢包率进行平滑处理,得到平滑处理后的丢包率t(n)=(1-α)×t(n-1)+α×f(n),其中α的取值决定了前一次丢包率f(n)对t(n)的影响比重。

再进一步,丢包重传模块接收到丢包数据序列号后生成重传请求,将请求发送回服务端后等待数据重传,当客户端在一定等待时间内接收到重传数据包时,将其与存储在缓存区的该帧其他数据一起存入二级缓存等待视频播放模块使用,如超过等待时间仍未接收到重传数据,则将该帧与之后的所有p帧全部丢弃。如果视频数据未发生丢包,则直接将数据存入二级缓存等待视频播放模块进行播放。其中等待时间随丢包率t(n)进行调整,等待时间t=t(n)×ta+b,其中b为网络状态良好通信所需时间,ta为一个合适的时间系数。丢包率较大时等待时间则会增加,丢包率较小时等待时间就会适当减少。

再进一步,视频播放模块采用一种自适应的播放阈值,阈值q=t(n)×ω+a,其中ω为收包开始后固定时隙内收到的总包数,a为初始的阈值大小。在二级缓存中的数据量达到阈值q后,播放模块开始播放视频。

进一步,视频回放与视频实时播放有所不同,视频回放对视频的实时性要求较低,这样在视频播放中则应更加注重视频质量。向服务器申请视频回放后,通过接收到的视频流经过视频数据解析模块,计算得到当前网络丢包率信息,从而计算出相应的自适应播放阈值。相较于实时视频,视频回放的播放阈值设定应更加大,也就是应增加初始阈值a的大小。同时在补包重传时加入了二次重传,在第一次重传超时时,客户端再次向服务器发送重传请求,如在第二次重传等待时间内收到重传数据,则将其放入二级缓存,如在第二次重传等待时间内仍未收到重传数据,则将该帧与之后的所有p帧全部丢弃。

本发明的有益效果为:在视频监控客户端中采用了一种udp的视频丢包重传与针对不同网络状况客户端的行为作出的调整,使其在不同的网络状况下视频质量能够有较高的提升。

针对不同网络状况,视频监控客户端作出相应的改进:

(1)采用了udp通信的视频数据丢包重传,在网络状况较差时也能够保证视频质量,同时设置了自适应的重传等待时间,使得实时视频不会产生较大的延迟。在等待超时时,将到后续i帧为止的数据包全部丢弃,这样不会产生解码错误导致出现马赛克,从而提高视频质量。同时采用了自适应的等待时间,当网络状况较差时等待时间会适当加长,防止重传失败次数过多。

(2)视频播放模块采用了一个自适应的播放阈值,阈值根据丢包率进行波动,当网络状况较差时,丢包率增加,阈值则增大,缓存中需要更多的数据播放模块才会开始播放,这样重传较多而导致延迟较高时,不会因为缓存放空导致视频卡顿。反之,网络状况较小时,减小阈值,视频播放的等待时间就会缩短,能够提高用户体验。

(3)在视频回放时增加了自适应阈值的常量值,同时增加了第一次重传失败后的二次重传步骤,使得视频回放在对实时性要求较低的前提下,尽可能的提高了视频质量。

附图说明

图1是本发明的总体架构框架。

图2是本发明的客户端与服务器的信令通信图。

图3是本发明的实时视频播放流程图。

图4是本发明的视频回放流程图。

具体实施方式

下面结合附图对本发明做进一步描述。

参照图1~图4,一种适应多种网络状况的视频监控客户端。依据附图1搭建工作环境,由客户端、服务器与设备三部分组成。客户端与服务器为广域网通信,而服务器与设备为局域网通信。广域网通信通常都会产生较大的丢包,因此需要对丢包进行处理,而局域网通信则不需要担心这点。

依据附图2其基本的信令交互使用的是sip+udp协议。客户端与服务器通信为广域网通信,实时视频请求、视频回放请求等操作是由sip协议完成,而视频流的传输与重传请求则是由udp协议完成。具体流程为先由sip协议完成用户的登录,发送视频请求等操作,之后由服务器通过udp协议将视频流回传,发现丢包后由客户端通过相同的udp链路回传丢包信息等待服务器重传丢包数据。

附图3为客户端播放视频流的整体流程图:

首先由客户端通过sip通信模块发送视频请求后,等待接收视频流。

待客户端收到视频流后,由udp通信模块将接收到的视频流数据存入一级缓存区。

之后由视频数据解析模块从一级缓存区中取出视频流数据,并对数据进行解析。每一个视频数据包都有一个序列号,通过判断接收到的数据包的序列号则可以得出是否发生了丢包,丢失的数据包序列号为多少,记录下这些序列号并在之后将序列号发送给服务器请求将丢失的数据包进行重传。同时数据包头部也有该数据的封装类型,不同类型需要经过不同的解包处理,则可以得到裸h264视频数据进行播放。数据包又可分为头包、中包与尾包,同时视频数据又有i帧、p帧之分,i帧为主要帧,p帧为辅帧。如果i帧发生丢失,就算接收到后续的p帧视频也无法正常播放。反之,单帧的p帧丢失则对视频的播放并无很大的影响。因此,在分析数据包时,还需对数据包的类型进行记录,例如i帧头包、p帧中包,以备之后丢包重传模块使用。同时,通过数据包的序列号可以得出一定时隙内应接收到的数据包总数r(n),再通过数据包总数r(n)减去实际接收到的数据包数可得到丢包数l(n),计算出丢包率f(n)=l(n)/r(n)。由于丢包率可能频繁变化,再对丢包率进行平滑处理,得到平滑处理后的丢包率t(n)=(1-α)×t(n-1)+α×f(n),其中α的取值决定了前一次丢包率f(n)对t(n)的影响比重。

在数据分析完成后,通过视频数据丢包重传模块讲丢失的数据包序列号发送回服务器请求重传,同时,将未发生丢包的h264视频数据按序列号顺序存入二级缓存。在等待时间内,如果收到重传的数据包,则将其中的h264数据取出,存入相应位置的二级缓存中。如果等待时间超时,则将该数据包与到下一i帧前收到的p帧数据全部丢弃。其中等待时间随丢包率t(n)进行调整,等待时间t=t(n)×ta+b,其中b为网络状态良好通信所需时间,ta为一个合适的时间系数。丢包率较大时等待时间则会增加,丢包率较小时等待时间就会适当减少。

视频播放模块采用了一个自适应的播放阈值,阈值根据丢包率进行波动,当网络状况较差时,丢包率增加,阈值则增大,缓存中需要更多的数据播放模块才会开始播放,这样重传较多而导致延迟较高时,不会因为缓存放空导致视频卡顿。反之,网络状况较小时,减小阈值,视频播放的等待时间就会缩短,能够提高用户体验。阈值计算公式为q=t(n)×ω+a,其中ω为收包开始后固定时隙内收到的总包数,a为一个常量,作为一个初始的阈值大小。在二级缓存中的数据量达到阈值q后,播放模块开始播放视频。

依据附图4在向服务器申请视频回放后,通过接收到的视频流经过视频数据解析模块,计算得到当前网络丢包率信息,从而计算出相应的自适应播放阈值。相较于实时视频,视频回放的播放阈值设定应更加大,也就是应增加初始阈值a的大小。同时在补包重传时加入了二次重传,在第一次重传超时时,客户端再次向服务器发送重传请求,如在第二次重传等待时间内收到重传数据,则将其放入二级缓存,如在第二次重传等待时间内仍未收到重传数据,则将该帧与之后的所有p帧全部丢弃。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1