日常工作积累笔记

  1. wireshark  抓包查看H264分辨率过滤器 (h264.nal_unit_hdr == 7))vp8(vp8.hdr.frametype==0)。
  2. chrome   jpeg lib库设之图片质量 jpeg_set_quality() ,quality值越大图片质量越好,图片本身很也会变大,但不是线性关系。jpeg 压缩原理: 将图像先分成8X8的小块->将图像从RGB转换为YCbCr->进行离散傅里叶变换(DTC)->数据量化便采用下图将二维矩阵转为一维数组,为了更好的进行哈夫曼压缩->进行哈夫曼编码得到压缩后的数据。2.
  3. webRTC 视频接收端从Call 到PacketBuffer packet传递调用堆栈;
  4. WebRTC 之时间戳
    音频:以采样点为单位,时间戳的精度为每采一个音频点的时间,每个RTP包一半包20ms的数据,假如采样率为48K,则相邻两个包的时间戳差为20/1000/(1/48000)=960;
    视频的时间戳精度一般为:1/90000;
    rtp包和ntp时间戳的对应关系是由SR RTCP包来实现的:每隔一段时间视频音频都会发送SR包,SR中包含RTP时间戳和NTP时间戳;线性拟合即可求出rtp时间戳和NTP时间戳之间的线性关系。

    5.

    GCC
    {
    为防止网络拥塞,控制发送端速率;
    GCC核心思想是预测发送端带宽和接收端带宽预测来控制发送速率,主要根据丢包率、网络延时、抖动来预测;
    发送端带宽估计流程:调用SendSideBandwidthEstimation::UpdateEstimate
    1. 收到RR包之后调用,受限于RR的发送频率,大概一秒一次;
    2. 定时更新,默认25ms,防止RR包丢失或不及时;
    丢包率计算:RR报文携带三个字段,两个RR间隔内的丢包率乘255;目前时刻的累计丢包数24位;目前时段收到的最大序列号,前16位,后16位为循环数;
    RTT计算,发送端SR携带发送时间戳(RTP时间戳)t_sr,RR回馈SR携带的时间戳,接收端处理延时t_dlrr,这样发送端就可以计算出RTT=recivedtime-t_sr-t_dlrr;
    
    
    估出发送端总的码率怎么分配到每一个流中:(观察者模式)
    几个主要的类:BitrateAllocatorInterface BitrateAllocator BitrateAllocatorInterface 
    VideoSendStreamImpl
    BitrateAllocatorInterface中有OnBitrateUpdated函数
    其中VideoSendStreamImpl继承BitrateAllocatorInterface并实现OnBitrateUpdated函数;
    VideoSendStreamImpl在VideoSendStreamImpl::StartupVideoSendStream()中调用bitrate_allocator_->AddObserver(this, GetAllocationConfig())将自己注册进BitrateAllocator,当发烧端带宽估计变化时调用VideoSendStreamImpl的OnBitrateUpdated函数,最终作用在编码器上改变码率控制发送端速率。
    
    
    
    
    }

    6.

    RTP/RTCP 协议:

     

  5. TODO

  6. TCP/IP协议组归纳

  7. SIP协议

  8. SDP协议

  9. Socket编程

  10. webRTC平台开启日志说明

  11. map.emplace().first 原来返回的是迭代器  .second返回插入结果。

  12. Keyframequest调用堆栈

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值