webrtc 代码学习(二十九)初步解决 video 在丢包环境下的卡顿问题,优化待续

初步解决 video 在丢包环境下的卡顿问题
作者:LanPZzzz

1. 实验测试,在持续的丢包20% 基础上,视频在前几分钟内画面流畅,但是随着时间越来越多,画面最终卡住
2. 为什么会出现这种现象,分析如下:
  1. 没有接收到 video 数据包,发送 nack rtcp 数据到sender
  2. sender 在接收到 nack 数据包情况下,从历史数据中找到丢失包,放入到 video pace 中
  3. 同时 video pace 还接收 encoder 的数据包
  4. 使用线程去 从 video pace 中读取数据包发送到socket 中
  5. 经过上面的就导致发送nack 包不及时,接收端又会重新发送nack 请求,导致堆积nack 数据发送不及时,对方丢帧,直至不能解码为止
3. 初步怎么解决,在接收到 nack 数据的时候,直接就发送数据包到socket,保证 nack 包能够最先发送,当然这样是有代价的,就是你不知道什么时候会crash(T_T…),初步修改如下:

RTPSender::ReSendPacket (\modules\rtp_rtcp\source\rtp_sender.cc)

  RTC_DCHECK(retransmission_rate_limiter_);
  // Check if we're overusin
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值