WebRTC中丢包重传机制的实现

当网络质量突然变的很差并开始丢包时,声音听起来音质会变差,画面帧速会下降,甚至会完全卡住。我们可能需要某种机制来应对这种情况。在WebRTC中,主要有两种机制来应该网络变差的情况:
  1. 前向纠错:在每个数据包中,您将添加一些关于前一个信息的信息,以防丢失,您需要重新构建它们(flexfec是WebRTC [1]中的新格式)。
  2. 重传:当接收方检测到有丢包时,它会发送NACK类型的RTCP包给发送方,发送方会重发这些数据。

这些机制可以根据网络条件进行组合,也可以针对特定情况进行调整,如[2]中所述的可扩展视频。在Chrome中,理论上音频,视频丢包都可以重传,但默认情况下只会启用视频丢包重传。下面会详细介绍丢包重传的具体实现。

RTP接收方
丢包重传的请求是由RTP接收方发起的。当RTP接收方检测RTP包头中的seq属性发现有丢包时,丢包重传机制就会启用。但是,是否检测到下一个RTP包不是自己预期想要的哪个就会要求重传呢?比如当前RTP序号是99,下一个来的包序号是101,哪就是否意味着序号为100的包就丢了呢?由于RTP协议是基于UDP的,而UDP又是无序传输的。再下一个包又可能就是序号为100的包。WebRTC会以500毫秒周期性的检测
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值