流媒体网络传输的带宽计算方法、服务器端和系统技术方案

技术编号:14456271 阅读:138 留言:0更新日期:2017-01-19 09:14
一种基于UDP的流媒体网络传输的带宽计算方法、服务器端和系统,将待发送的视频帧数据分成多个子视频帧数据包,发送带有预设编号的子视频帧数据包至客户端,并接收所述客户端发送的回应消息,所述回应消息包括第一编号和第二编号,发送与所述第一编号相对应的子视频帧数据包至客户端,并判断客户端是否已经接收到所述视频帧数据的所有子视频帧数据包;若是,则根据所述视频帧数据的最前一个子视频帧数据包的发送开始时间、所述视频帧数据的最后一个子视频帧数据包的发送结束时间以及所述视频帧数据的大小,准确的计算出当前网络的实际带宽值,为编码码率的自适应提供了依据。

【技术实现步骤摘要】

本专利技术涉及流媒体
,尤其涉及一种基于UDP的流媒体网络传输的带宽计算方法、服务器端和系统。
技术介绍
流媒体是在Internet中使用流式传输技术的连续时基媒体,如:音频、视频或多媒体文件。流媒体在播放前并不下载整个文件,只将开始部分内容存入内存,流媒体的数据流随时传送随时播放,只是在开始时有一些延迟。流媒体实现的关键技术就是流式传输技术。如今,应用流式传输技术实现高清视频传输在实时视频监控领域中逐渐普及。要保证高清视频传输,往往需要更多的网络带宽和更稳定的网络传输环境。不过在公网环境,尤其是移动无线网络中,网络环境是动态变化的。在动态变化的网络环境中,要实现高清视频传输就要求在带宽不足时,能及时地调低传输的编码码率;在带宽恢复以后,又能及时地恢复到之前正常传输时的编码码率;丢包时,能快速重传;网络延迟抖动时,还能减少传输速率抖动。总而言之,在动态变化的网络环境中,必须满足传输控制和网络带宽自适应的要求,才能实现高清视频传输。在传输控制方面,现有技术中少有提及。众所周知,在基于IP的网络传输方式中,可供选择的传输层协议只有TCP(TransmissionControlProtocol传输控制协议、TCP/IP协议框架里的传输层协议,提供面向连接的可靠传输)协议和UDP(UserDatagramProtocol用户数据报协议、TCP/IP协议框架里的传输层协议,提供非可靠性传输)协议,不过在现有技术中很少有提到使用哪种传输协议的。如果使用TCP协议,在网络有丢包时,传输速率会急速下降,这对要求实时传输的监控视频应用而言影响很大。即使应用TCP协议的改进算法可以快速恢复传输速率,也势必会导致码流传输速率的大起大落,影响视频播放效果。如果使用UDP协议,则需要对网络传输的可靠性进行保证。在网络带宽自适应方面,现有技术主要包括两类方案,一类是根据发送缓冲区的变化情况,在网络带宽变小时,发送缓冲区也不断变小,进而调低编码码率。但是在将编码码率调低以后,发送缓冲区的大小理论上会接近于0,如果随着时间的推移,网路带宽又变大了,这类方法也无法判定出合适的时机将编码码率再相应的调大。而且,在公共网络,尤其是无线网络中时常会出现延迟抖动,甚至丢包,这都会对发送缓冲区产生很大影响。例如4Mbps的编码码率,4Mb的发送缓冲区,网络偶发1秒的延迟,就可以将发送缓冲区占满,如果此时再将编码码率调低显然是不合适的。一类是根据网络带宽的变化调整编码码率,但是如何评估出当前的网络带宽情况,现有技术却语焉不详。在已有传输实时视频的网络技术中,根据网络带宽变化调整编码码率是不难想到地。当网络带宽小于编码码率时,一般根据实际发送量,很容易得到要降低编码码率的结论。但是,在降低之后,如果网络带宽转好,由于编码码率是恒定的,所以很难统计出当前转好以后的网络带宽实际是多少。如果采用试探性的方式,逐步提高码率,势必会在网络带宽临界值的地方,来回震荡,最终导致呈现给用户的显示效果很差。所以如何根据实时数据包产生及发送的特点,计算出实际的网络带宽是我们需要解决的技术问题。
技术实现思路
本专利技术的目的是提供一种基于UDP的流媒体网络传输的带宽计算方法、服务器端和系统,能够准确的计算出当前网络的实际带宽值,为编码码率的自适应提供了依据。根据本专利技术的一个方面,一种基于UDP的流媒体网络传输的带宽计算方法,应用于服务器端,包括:将待发送的视频帧数据分割成多个子视频帧数据单元,并将每个所述子视频帧数据单元封装成子视频帧数据包,所述子视频帧数据包包括预设编号;发送带有所述预设编号的子视频帧数据包至客户端,并记录发送开始时间;接收所述客户端发送的回应消息,其中,所述回应消息是根据客户端接收到的所述子视频帧数据包而生成,所述回应消息包括客户端要求服务器端发送的至少一个子视频帧数据包所对应的第一编号以及已接收到的子视频帧数据包的第二编号;从所述回应消息中提取出所述第一编号与所述第二编号,发送与所述第一编号相对应的子视频帧数据包至客户端,并根据所述第二编号,判断客户端是否已经接收到所述视频帧数据的所有子视频帧数据包;若是,则记录所述视频帧数据的最后一个子视频帧数据包的发送结束时间,根据所述发送开始时间、所述发送结束时间以及所述视频帧数据的大小,计算网络带宽值。其中,所述从所述回应消息中提取出所述第一编号与所述第二编号,发送与所述第一编号相对应的子视频帧数据包至客户端,包括:从所述回应消息中提取出所述第一编号与所述第二编号,对该第一编号对应的子视频帧数据包的重传计数进行累加;当所述重传计数大于预设重传阈值,则发送与所述重传计数关联的所述第一编号对应的子视频帧数据包至客户端。其中,所述从所述回应消息中提取出所述第一编号与所述第二编号之后,还包括:删除发送缓冲区中编号小于所述第一编号中最小编号所对应的子视频帧数据包;根据删除的子视频帧数据包的个数,将已发送客户端、且未接收到对应所述第二编号的回应消息所关联的子视频帧数据包的计数进行相应减少。其中,所述当所述重传计数大于预设重传阈值,则发送与所述重传计数关联的所述第一编号对应的子视频帧数据包至客户端,包括:判断已发送客户端、且未接收到对应第二编号的回应消息所关联的子视频帧数据包个数是否已达到预设个数阈值;若是,根据预设策略在发送缓冲区中选择对应重传计数大于预设重传阈值的子视频帧数据包发送至客户端;若否,发送在发送缓冲区中选择的对应重传计数大于预设重传阈值的子视频帧数据包,以及发送新的子视频帧数据包,并根据所述新的子视频帧数据包的个数,将已发送客户端、且未接收到对应第二编号的回应消息所关联的子视频帧数据包的计数进行相应累加。其中,所述预设策略包括:选择发送缓冲区中对应重传计数大于预设重传阈值的子视频帧数据包中的对应编号最小的子视频帧数据包。其中,所述计算网络带宽值,包括:计算网络的发送速率,所述发送速率=B/T;对预设单位时间内发送的每个视频帧数据所对应的发送速率求和,并对求和结果进行平均值计算,以得出网络带宽值;其中,B=所述视频帧数据的大小+在发送所述视频帧数据的过程中,发送的与所述第一编号相对应的所有子视频帧数据包的大小总和,T=所述发送开始时间和所述发送结束时间的间隔时长。其中,得出所述网络带宽值之后,还包括:根据所述网络带宽值,对传输视频帧数据的编码码率进行相应调整。根据本专利技术的另一个方面,一种基于UDP的流媒体网络传输的服务器端,所述服务器端与客户端建立网络连接,所述服务器端包括分割封装单元、发送记录单元、接收回应单元、提取编号单元和计算带宽单元;分割封装单元,用于将待发送的视频帧数据分割成多个子视频帧数据单元,并将每个所述子视频帧数据单元封装成子视频帧数据包,所述子视频帧数据包包括预设编号;发送记录单元,用于发送带有所述预设编号的子视频帧数据包至客户端,并记录发送开始时间;接收回应单元,用于接收所述客户端发送的回应消息,其中,所述回应消息是根据客户端接收到的所述子视频帧数据包而生成,所述回应消息包括客户端要求服务器端发送的至少一个子视频帧数据包所对应的第一编号以及已接收到的子视频帧数据包的第二编号;提取编号单元,用于从所述回应消息中提取出所述第一编号与所述第二编本文档来自技高网
...

【技术保护点】
一种基于UDP的流媒体网络传输的带宽计算方法,应用于服务器端,其特征在于,包括:将待发送的视频帧数据分割成多个子视频帧数据单元,并将每个所述子视频帧数据单元封装成子视频帧数据包,所述子视频帧数据包包括预设编号;发送带有所述预设编号的子视频帧数据包至客户端,并记录发送开始时间;接收所述客户端发送的回应消息,其中,所述回应消息是根据客户端接收到的所述子视频帧数据包而生成,所述回应消息包括客户端要求服务器端发送的至少一个子视频帧数据包所对应的第一编号以及已接收到的子视频帧数据包的第二编号;从所述回应消息中提取出所述第一编号与所述第二编号,发送与所述第一编号相对应的子视频帧数据包至客户端,并根据所述第二编号,判断客户端是否已经接收到所述视频帧数据的所有子视频帧数据包;若是,则记录所述视频帧数据的最后一个子视频帧数据包的发送结束时间,根据所述发送开始时间、所述发送结束时间以及所述视频帧数据的大小,计算网络带宽值。

【技术特征摘要】
1.一种基于UDP的流媒体网络传输的带宽计算方法,应用于服务器端,其特征在于,包括:将待发送的视频帧数据分割成多个子视频帧数据单元,并将每个所述子视频帧数据单元封装成子视频帧数据包,所述子视频帧数据包包括预设编号;发送带有所述预设编号的子视频帧数据包至客户端,并记录发送开始时间;接收所述客户端发送的回应消息,其中,所述回应消息是根据客户端接收到的所述子视频帧数据包而生成,所述回应消息包括客户端要求服务器端发送的至少一个子视频帧数据包所对应的第一编号以及已接收到的子视频帧数据包的第二编号;从所述回应消息中提取出所述第一编号与所述第二编号,发送与所述第一编号相对应的子视频帧数据包至客户端,并根据所述第二编号,判断客户端是否已经接收到所述视频帧数据的所有子视频帧数据包;若是,则记录所述视频帧数据的最后一个子视频帧数据包的发送结束时间,根据所述发送开始时间、所述发送结束时间以及所述视频帧数据的大小,计算网络带宽值。2.根据权利要求1所述的基于UDP的流媒体网络传输的带宽计算方法,其特征在于,所述从所述回应消息中提取出所述第一编号与所述第二编号,发送与所述第一编号相对应的子视频帧数据包至客户端,包括:从所述回应消息中提取出所述第一编号与所述第二编号,对该第一编号对应的子视频帧数据包的重传计数进行累加;当所述重传计数大于预设重传阈值,则发送与所述重传计数关联的所述第一编号对应的子视频帧数据包至客户端。3.根据权利要求2所述的基于UDP的流媒体网络传输的带宽计算方
\t法,其特征在于,所述从所述回应消息中提取出所述第一编号与所述第二编号之后,还包括:删除发送缓冲区中编号小于所述第一编号中最小编号所对应的子视频帧数据包;根据删除的子视频帧数据包的个数,将已发送客户端、且未接收到对应所述第二编号的回应消息所关联的子视频帧数据包的计数进行相应减少。4.根据权利要求2所述的基于UDP的流媒体网络传输的带宽计算方法,其特征在于,所述当所述重传计数大于预设重传阈值,则发送与所述重传计数关联的所述第一编号对应的子视频帧数据包至客户端,包括:判断已发送客户端、且未接收到对应第二编号的回应消息所关联的子视频帧数据包个数是否已达到预设个数阈值;若是,根据预设策略在发送缓冲区中选择对应重传计数大于预设重传阈值的子视频帧数据包发送至客户端;若否,发送在发送缓冲区中选择的对应重传计数大于预设重传阈值的子视频帧数据包,以及发送新的子视频帧数据包,并根据所述新的子视频帧数据包的个数,将已发送客户端、且未接收到对应第二编号的回应消息所关联的子视频帧数据包的计数进行相应累加。5.根据权利要求4所述的基于UDP的流媒体网络传输的带宽计算方法,其特征在于,所述预设策略包括:选择发送缓冲区中对应重传计数大于预设重传阈值的子视频帧数据包中的对应编号最小的子视频帧数据包。6.根据权利要求1所述的基于UDP的流媒体网络传输的带宽计算方法,其特征在于,所述计算网络带宽值,包括:计算网络的发送速率,所述发送速率=B/T;对预设单位时间内发送的每个视频帧数据所对应的发送速率求和,并对求和结果进行平均值计算,以得出网络带宽值;其中,B=所述视频帧数据的大小+在发送所述视频帧数据的过程中,
\t发送的与所述第一编号相对应的所有子视频帧数据包的大小总和,T=所述发送开始时间和所述发送结束时间的间隔时长。7.根据权利要求6所述的基于UDP的流媒体网络传输的带宽计算方法,其特征在于,得出所述网络带宽值之后,还包括:根据所述网络带宽值,对传输视频帧数据的编码码率进行相应调整。8.一种基于UDP的流媒体网络传输的服务器端,所述服务器端与客户端建立网络连接,其特征在于:所述服务器端包括分割封装单元、发送记录单元、接收回应单元、提取编号单元和计算带宽单元;分割封装单元,用于将...

【专利技术属性】
技术研发人员:潘亚东李奎张小媛
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1