美文网首页webrtc
BitrateProber解读

BitrateProber解读

作者: MinorUncle | 来源:发表于2017-11-17 21:00 被阅读172次

BitrateProber也是PacedSender的属性类,第一眼看到BitrateProber
这个类名时以为是类似网速探测功能的,其实不然,BitrateProber只是为了维持一段时间和数据量内发送的网速不低于某一比特率,(其实也是探测网速的一个辅助功能,只有发送足量的数据,才好测量当前网速),所以在整个直播生命周期中,该类激活的时间比较短。一般检测到网速突变时会触发。

重要函数解读:

int64_t BitrateProber::GetNextProbeTime(const ProbeCluster&

cluster):根据网速和已经发送的数据量获得,大概算法是(已经发送的数据量/当前码率)+当前时间(代码中只有发送完成后调用,所以只发送完一段数据)。暂时不知道这样的意义,为什么消耗了多长时间就要等待多长时间?(补充,因为rtp发送无法知道是否成功发送,这里只是按照指定的网速一直发送,所以下次发送的时间 = 已发送的大小/码率)

size_t BitrateProber::RecommendedMinProbeSize() :获取每次发送的大小,与码率有关系,根据码率每次发送2ms的数据

重要接口解读:

void BitrateProber::CreateProbeCluster(int bitrate_bps, int64_t now_ms):创建ProbeCluster,实际ProbeCluster表示一次Probe过程,一个BitrateProber可以有多个ProbeCluster,但是只能是创建时间在5s之内的,否则新的会释放旧的。下面的所以网速皆指此初始化的bitrate_bps。也就可以理解每次网速变化大的时候就会重新该过程

void BitrateProber::OnIncomingPacket(size_t packet_size):触发ProbingState::kActive状态,但是条件是packet_size不能太小,具体大小和当前网速有关系,一般是200B,除非预测网速在100Bk/s以下。

int BitrateProber::TimeUntilNextProbe(int64_t now_ms):下一次Probe时间,主要用于通知线程下一次循环时间

相关文章

  • BitrateProber解读

    BitrateProber也是PacedSender的属性类,第一眼看到BitrateProber这个类名时以为是...

  • 女娲文化之研究

    古代传说解读篇 道家文化解读篇 东西方文化对照解读篇 瑜伽能量解读篇 佛家文化解读篇 封神演义解读篇 现代解读意义篇

  • 破界突围之路:初探IPD流程(三)

    继上篇,IPD流程的源头,要通过三解读(标准解读、客户需求解读、场景解读),充分解读需求,再去适配产品,进入产品...

  • 不同的人学习同一个知识的分解和解读是不同的

    今天跟天赋解读师颜姐了解天赋解读,其实原先已经有另一个天赋解读师给解读过我自己的天赋。 上次的天赋解读师,只是解读...

  • 《把时间当做朋友》快读完了,记录今日份感受

    李笑来用最没有偏差的视角去解读自己,解读他人,解读生活,解读社会,解读世界。通过他的“时间”让我看到了正确...

  • 解读

    解读你 解读你的思想 解读你的一切 解读你不需要和时间赛跑 只要和你有过交谈、旅行、舞会, 就会知道“你” 解读你...

  • 【猜你喜欢】手淘流量,猜你喜欢行业案例解读

    猜你喜欢行业案例解读 目录: <女装行业案例解读1> 《女装行业案例解读2》 <美妆行业案例解读> <女装行业案例...

  • 书籍《原则》解读

    原则解读 1 拥抱现实,应对现实--“原则解读” (1) 心态+游戏化思维--原则解读(2)

  • 【Java源码计划】LongAdder<rt.jar_ja

    LongAdder 源码解读 源码解读部分按照我得理解翻译和解读注解并添加相关的部分代码解读 保持一个或者多个变量...

  • 领悟

    为什么解读文本困难?因为没有解读工具。为什么没有解读工具?因为读的书太少。怎样才可以拥有解读工具?读相关的理论书籍...

网友评论

    本文标题:BitrateProber解读

    本文链接:https://www.haomeiwen.com/subject/uvllmxtx.html