视频传输过程中的缓冲时间自适应算法

 

视频传输过程中的缓冲时间自适应算法

655人阅读 评论(1) 收藏 举报

在音视频的实时传输过程中,缓冲时间对于播放的效果十分重要。这个值设多大合适呢?为了达到实时性,当然是在满足质量要求的条件下越小越好了。

但网络延迟及一些其它因素是多变的,而且是不可预测的。因此在程序中硬编码一个值肯定是合适的。如果这个值设置小了,肯定会很卡,如果设置大了,延迟又太大了,实时性又差了。最好就是根据网络延迟及延迟波动自动调整最好不了。

1.每一帧延迟的计算

假设发送方的参考时间为s0, 接收方的参考时间为R0, s0与R0可以同步设置.Si - S0 == Ri - R0 + di. di= Ri - R0 + S0 - Si

延迟波动为相领两帧的延迟差的绝对值. vi = |di - dj|, d=i-1

为了使延迟及延迟波动较为平滑,可以用历史值占较大比重,当前值占较小比重。设u为1/16,则

d = d*15/16 + di/16

v=v*15/16 + vi/16

为了容许一定的延迟波动,实际的缓冲时间可以用延迟加上延迟波动乘以一个系数K,设置K=5

则pi = ri + d + K*v

在延迟变大时,视频可以考虑慢放,在缓冲时间由大变小时,可以考虑快放,这样就不需要丢帧,保证所有帧都解压并显示出来。声音在缓冲时间变化时只能停顿或丢弃一些帧。

经过测试,在实际的网络环境下,此算法级保证一个比较稳定的并且比较理想的缓冲时间。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值