音/视频直播方法、装置及控制方法、装置的制造方法

文档序号:9420718阅读:270来源:国知局
音/视频直播方法、装置及控制方法、装置的制造方法
【技术领域】
[0001]本发明涉及网络传输技术领域,尤其涉及一种基于TCP直播系统消除时延抖动的音/视频直播方法、装置及对应的控制方法、装置。
【背景技术】
[0002]视频直播系统是把现场的视频信号(如摄像头、摄像机)和语音信号(如麦克风)进行实时采集编码,通过网络发送到服务器上去,用户可以用过网络实时观看。一个最简单的视频直播系统模型由五个环节构成:采集、编码、传输、解码、播放。由于现实的因素使得视频直播系统的实现不是那么简单,其涉及到很多专业技术。
[0003]时延抖动(jitter)作为视频直播系统中的一项重要的QoS参数,对语音通信质量有着直接的影响。因此需要采用一定的措施来防止时延抖动,从而保证一定的直播质量。
[0004]时延抖动(jitter)是指由于各种延迟的变化导致网络中的数据分组到达速率的变化。网络时延是指一个IP包在网络上传输所需的时间,它包括算法时延、编码延迟、网络传输时延和抖动缓冲时延。网络时延抖动就是网络延迟一会大一会小,在这种情况下,即使发送方是定时发送数据包,而接收方的接收也无法同样定时,有时一个周期内一个包也接收不到,有时一个周期内接收到好几个包。如果网络抖动的较严重,数据包还有可能丢弃。如此,导致接收方听到的声音就是一卡一卡的。
[0005]为了消除时延抖动,通常采用抖动缓冲技术(JitterBuffer),即在接收方设定一个缓冲区,数据报到达时首先进入缓冲池暂存,随后系统再以平滑的速率将数据包从缓冲池中取出,经解压后播放给用户。这种缓冲技术可以在一定限度内有效消除语音抖动,并提尚首质O
[0006]JitterBuffer的缓冲深度取决于网络抖动的程度,网络抖动越大,缓冲深度越大,播放的延迟就越大。所以JitterBuffer是利用了较高的延迟来换取流畅的播放,相比声音——^来说,稍微大一点的延迟但更流畅的效果,其主观体验要更好。当然JitterBuffer的缓冲深度不一定是一直不变的,可以是根据网络抖动程度的变化而动态调整的。当网络恢复到非常平稳通畅时,缓冲深度会非常小,这样延迟就可以减少。
[0007]目前缓冲控制方法主要有两种:静态抖动缓冲控制方法和自适应抖动缓冲控制方法。
[0008]静态抖动缓冲控制方法中,缓冲区的大小在传输通道建立后一直为固定值,对于抖动超出缓冲区大小的数据将会被丢弃。该方法的优点是:模型简单、易于实现、可靠性高;缺点是:网络抖动较大时,丢包率高,而网络时延及抖动很小的时候,延迟较大,适用性不是很强。
[0009]自适应抖动缓冲控制方法中,缓冲区大小随实际网络的抖动情况而变化。与静态抖动缓冲控制方法相比,自适应抖动缓冲控制方法的优点是:网络抖动较大时丢包率相对较低,而网络延迟及抖动小时,延迟相对较小。但是现有技术使用的自适应抖动缓冲控制方法是根据实际网络的抖动情况来增大或减少缓冲区大小,而且增加或减少的值往往是一个定值。也就是说,对于需要增大/减少缓冲区的网络的抖动情况,均是将当前缓冲区增加/减少一个定值,而忽略需要增大/减少缓冲区的网络的抖动情况之间存在的差异,从而使得动态调整不够平滑。因此,对于平滑要求较高的视频直播系统来说也不适用。

【发明内容】

[0010]本发明实施例的目的是提供一种基于TCP直播系统消除时延抖动的音/视频播放方法、装置及控制方法、装置,能根据网络状态动态有效调整缓冲区大小,而且在保证平滑、确保播放流畅的前提下使时延尽量小。
[0011]本发明实施例提供了一种基于TCP直播系统消除时延抖动的控制方法,包括:
[0012]判断当前缓冲区是否为空;
[0013]当缓冲区不为空,待当前调整周期到达时,若当前调整周期内的最大缓冲区数据时长与最小缓冲区数据时长的差值小于预设的缓冲区时长抖动阈值,且所述最小缓冲区数据时长大于预设的最小缓冲区时长阈值,则将当前缓冲区数据时长缩短,且缩短的值小于或等于所述最小缓冲区数据时长和所述预设的最小缓冲区时长阈值之间的差值;
[0014]当缓冲区为空,待缓冲区为空到接收到第一个数据包时,则将初始缓冲区数据时长增大,且增大后的初始缓冲区数据时长是第二大时延抖动值的增函数;其中,所述初始缓冲区数据时长是缓冲区为空到恢复播放所需要的缓冲数据时长;所述第二大时延抖动值是缓冲区为空前一段时间到接收到所述第一个数据包的时间内所接收到的连续的两个数据包的时间差中的第二大值。
[0015]作为上述方案的改进,当所述增大后的初始缓冲区数据时长大于预设的最大缓冲区时长阈值时,将所述预设的最大缓冲区时长阈值作为所述增大后的初始缓冲区数据时长;当所述增大后的初始缓冲区数据时长小于预设的最小缓冲区时长阈值时,将所述预设的最小缓冲区时长阈值作为所述增大后的初始缓冲区数据时长。
[0016]作为上述方案的改进,当所述第二大时延抖动值小于预设的最小时延抖动值时,将所述预设的最小时延抖动值作为所述第二大时延抖动值;当所述第二大时延抖动值大于预设的最大时延抖动值时,将所述预设的最大时延抖动值作为所述第二大时延抖动值。
[0017]作为上述方案的改进,还包括:将连续接收到的两个数据包的时间差入栈保存。
[0018]作为上述方案的改进,所述增大后的初始缓冲区数据时长是第二大时延抖动值的线性增函数。
[0019]作为上述方案的改进,所述增大后的初始缓冲区数据时长是第二大时延抖动值的分段线性增函数。
[0020]作为上述方案的改进,所述一段时间为一个完整调整周期的1/3?1/2。
[0021]本发明实施例还对应公开了一种基于TCP直播系统消除时延抖动的控制装置,包括:
[0022]判断模块,用于判断当前缓冲区是否为空;
[0023]第一调整模块,用于当缓冲区不为空,待当前调整周期到达时,若当前调整周期内的最大缓冲区数据时长与最小缓冲区数据时长的差值小于预设的缓冲区时长抖动阈值,且所述最小缓冲区数据时长大于预设的最小缓冲区时长阈值,则将当前缓冲区数据时长缩短,且缩短的值小于或等于所述最小缓冲区数据时长和所述预设的最小缓冲区时长阈值之间的差值;
[0024]第二调整模块,用于当缓冲区为空,则将初始缓冲区数据时长增大,且增大后的初始缓冲区数据时长是第二大时延抖动值的增函数;其中,所述初始缓冲区数据时长是缓冲区为空到恢复播放所需要的缓冲数据时长;所述第二大时延抖动值是缓冲区为空前一段时间内所接收到的连续的两个数据包的时间差中的第二大值。
[0025]作为上述方案的改进,所述第二调整模块还用于:当所述增大后的初始缓冲区数据时长大于预设的最大缓冲区时长阈值时,将所述预设的最大缓冲区时长阈值作为所述增大后的初始缓冲区数据时长;当所述增大后的初始缓冲区数据时长小于预设的最小缓冲区时长阈值时,将所述预设的最小缓冲区时长阈值作为所述增大后的初始缓冲区数据时长。
[0026]作为上述方案的改进,所述第二调整模块还用于:当所述第二大时延抖动值小于预设的最小时延抖动值时,将所述预设的最小时延抖动值作为所述第二大时延抖动值;当所述第二大时延抖动值大于预设的最大时延抖动值时,将所述预设的最大时延抖动值作为所述第二大时延抖动值。
[0027]作为上述方案的改进,还包括:
[0028]入栈保存模块,用于将连续接收到的两个数据包的时间差入栈保存。
[0029]作为上述方案的改进,所述增大后的初始缓冲区数据时长是第二大时延抖动值的线性增函数。
[0030]作为上述方案的改进,所述增大后的初始缓冲区数据时长是第二大时延抖动值的分段线性增函数。
[0031]作为上述方案的改进,所述一段时间为一个完整调整周期的1/3?1/2。
[0032]本发明实施例还公开了一种基于TCP的音/视频直播方法,包括:
[0033]接收数据包并将所述数据包缓存到缓冲区中;
[0034]根据如上所述的控制方法调整所述缓冲区的缓冲区数据时长;
[0035]基于缓冲区数据时长调整后的缓冲区中获取数据包并解码播放。
[0036]本发明实施例还公开了一种基于TCP的音/视频直播装置,包括:
[0037]数据接收模块,用于接收数据包并将所述数据包缓存到缓冲区中;
[0038]如上所述的控制装置,用于对调整所述缓冲区的缓冲区数据时长;以及
[0039]解码播放模块,基于缓冲区数据时长调整后的缓冲区中获取数据包并解码播放。
[0040]与现有技术相比,本发明公开的基于TCP直播系统消除时延抖动的音/视频直播方法、装置及控制方法、装置,能有效解决视频直播系统中时延和抖动的问题,在自适应抖动缓冲控制方法上,通过判断当前缓冲区是否为空,并在缓冲区不为空/为空的情况下,
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1