webrtc-AlrDetector

本文介绍了一种网络受限探测器实现方案,通过监测最近500毫秒内的发送码率,当码率低于设置值的60%时记录受限开始时间,并在码率回升至70%以上时清除该标志。主要应用于识别网络质量变化的时间点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络受限探测器,统计最近500ms发送码率,如果小于设置码率的60%,则记录码率过小的开始时间(now),如果码率大于%70则清空开始时间。
主要是用于计算什么时间点码率开始过小了

<%60  开始设置受限标志,开始时间值
%60 -%70 保持不变
>%70  清除受限标志

1.设置预测码率,内部统计以这个码率为基准

void SetEstimatedBitrate(int bitrate_bps)

  1. 用于更新统计码率,比较

     void OnBytesSent(size_t bytes_sent, int64_t now_ms){
     
        //统计最近的发送码率
        rate_.Update(bytes_sent, now_ms);
        rtc::Optional<uint32_t> rate = rate_.Rate(now_ms);
     
        int percentage = static_cast<int>(*rate) * 100 / estimated_bitrate_bps_;
        if (percentage < kAlrStartUsagePercent && !alr_started_time_ms_) {
     	  //当前发送码率过小了 <60%,设置受限标志
          alr_started_time_ms_ = rtc::Optional<int64_t>(now_ms);
        } else if (percentage > kAlrEndUsagePercent && alr_started_time_ms_) {
     	  //解除受限  >%70
         alr_started_time_ms_ = rtc::Optional<int64_t>();
        }
     }
    
  2. 获取受限时间点

     rtc::Optional<int64_t> GetApplicationLimitedRegionStartTime() const {
       return alr_started_time_ms_;
     }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值