随笔分类 - webrtc
webrtc
摘要:正文 neteq中存在一个模块peakDetector用于做峰值检测,用于处理下述的场景,在突发抖动过程中,突发的高抖动不足以拉大直方图的97分位,但又持续了一小段时间需要响应处理, 还存在一定的周期行为,所以在neteq中额外增加了peakDetector,用于弥补直方图不足以对抗该场景的问题;
阅读全文
摘要:正文 neteq两种模式: RELATIVE_ARRIVAL_DELAY,INTER_ARRIVAL_TIME,两者计算抖动方式的存在区别 如上图所示: RELATIVE_ARRIVAL_DELAY(简称relative_delay)的计算相邻两个点的iat_ms,然后从区间头进行累加到当前(数学展
阅读全文
摘要:1.前言 本文介绍了webrtc中的fec相关封装原理, 协议,分析其在webrtc中的应用过程和使用策略。 2.正文 2.1 red 为什么做red封装呢?Ulpfec编码后的内容会做Red封装后再放入RtpPacket,可fec在RFC5109已经定义好自己的传输格式,而且sdp协商过程中也有U
阅读全文
摘要:1. 前言 本文是webrtc拥塞控制的下文,主要介绍的是从cc-controller获取码率之后,如何将码率设置到PacingController控制发送速率,同时如何将码率分配调整到各个stream,各个stream的layer, simulcast,fec中 2. 正文 2.1 整体码控结构
阅读全文
摘要:本文是webrtc中拥塞控制的上文,主要是分析webrtc中的拥塞控制的码率探测,预估和调整的部分,介绍了整体框架和原理以及相关的类;
阅读全文
摘要:本文介绍了webrtc中视频的基本发送流程,阐述了视频如何从编码,到RTP打包,到Paced控制,经过ICE发送的流程:
阅读全文
摘要:本文结合了webrtc源码上的example分析webrtc的API接口以及webrtc的基本通讯流程和相关概念
阅读全文
摘要:本文主要介绍webrtc jitter buffer的平滑原理和平滑视频抖动最关键的指标-jitter delay的计算
阅读全文
摘要:webrtc通过函数**AheadOf( )**进行rtp序列号的新旧的比较,rtp序列号的比较不能单纯的比较大小,因为会涉及到回环: template <typename T, T M = 0> inline bool AheadOf(T a, T b) { static_assert(std::
阅读全文
摘要:1.前言 webrtc线程源于chromium,其中有消息队列,通信等功能,相对于原始的std::thread或者posix pthread而言,好用不少,本文介绍了webrtc 线程的常用功能以及实现; webrtc版本:M91 2.正文 2.1 webrtc中的主要线程 出于管理接口即时性,平衡
阅读全文
摘要:前言 从网上看到的另一句话,webrtc中的信号槽像是变种的观察者模式,当有信号发送的时候,信号发送者通过遍历自己的所有connect的信号槽,然后执行他们的回调;起初会有为什么需要信号槽 信号槽与普通的函数回调有什么区别的疑问, 个人认为信号槽是一种面向对象的回调,当回调涉及到对象,需要考虑到执行
阅读全文
摘要:前言 webrtc中为了保证线程安全,在线程中使用消息队列机制处理消息 正文 举一个创建PeerConnectionFactory时的例子为例;此处已经创建了PeerConnectionFactory对象 pc_factory,此时需要对其进行Initialize()操作,首先创建了一个方法调用器
阅读全文