2022-05-13【webrtc应用】yangrtc/metaRTC开源库源码分析(四)

yangrtc/(又名metaRTC)源码分析(四)

这一次,我们解决了一个通信系统中常见的问题。

语音播放数据的延迟问题。

项目场景:

业务流程大致如下:
业务场景

  1. yangrtc拉取OPUS流,解码存入队列之后;
  2. 业务线程从队列取出数据,进行编码修改后丢入编码后队列;
  3. Play业务取出编码后数据进行消费。

问题描述

在使用yangrtc库,进行二次开发的过程中,出现了一个问题,语音数据随着“拉流时间持续时间越来越长”,播放端出现了延迟越来越大的情况?

原因分析:

当右侧的编码后队列,不停的膨胀,而Play业务的消费能力跟不上时,会产生积压。
最终导致播放延迟。


解决方案:

  1. 计算左侧队列的生产能力,如每秒多少条;我这边是1秒生产50条;
  2. 计算右侧队列的消费能力。我这边是1秒消费12.5条;
  3. 当两者达到平衡状态时,能够保证语音流的实时性;

最终我的解决方案:

  • 业务线程,根据右侧编码队列的消费能力,做了适当的流控,保证速度达到一致的平衡。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShaYQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值