![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Ulpfec
玄哥带你飞哟
这个作者很懒,什么都没留下…
展开
-
webrtc和fec-离成功中间的坑
音视频质量优化真的是博大精深。 fec之前的流程已经分析过了,但是距离从P2P改成SVC模式的路还是比较长的, RR中的fraction_loss作为fec的基础参数,并不一定会作为fec的冗余度,其中是有rtt的check,在media_optil里面,会根据rtt判断是否启用fec(rtt>20ms),这是合理的,因为如果rtt特别短说明网络情况特别好,在这个条件下选择nack不使用...原创 2020-04-24 20:34:50 · 1045 阅读 · 0 评论 -
WebRTC学习DAY10(ULPFEC)
开关 特殊点: 1.对RTP包是否启用保护的判定条件 bool protect_packet = temporal_id == 0 || temporal_id == kNoTemporalIdx; packet->HasExtension<VideoTimingExtension>() 2.FieldTrails相关扩展调用 3.payload_...原创 2019-10-25 16:23:41 · 534 阅读 · 3 评论 -
WebRTC学习DAY10(ULPFEC)
分析WebRTC中Fec的利用 1.在call\call.cc中CreateVideoSendstream中选择所使用的FecController,如果FecControllerDefault被重写,即自己定义则使用重写的FecController,否则默认使用FecControllerDefault,其利用传入参数clock_进行初始化, 2.随后new一个VideoSendStrea...原创 2019-10-18 16:10:36 · 454 阅读 · 0 评论 -
WebRTC学习DAY05(ULPFEC)
FEC:前向纠错 WebRTC中常见两种:ULPFEC/FLEXFEC ULPFEC(非均等保护前向纠错) 1.数据包包括:所保护的媒体数据,保护级别,对应保护级别的保护长度,偏移量掩码 2.报文格式:[RTC Header只有在使用独立的数据流发送时才使用到] WebRTC采用封装在RED(冗余编码)报文中随源媒体数据一起发送,故不考虑RTPheader 2.1 FEC Hea...原创 2019-09-23 18:47:00 · 932 阅读 · 0 评论 -
WebRTC学习DAY06(ULPFEC)
Ulpfec 将一组M个报文进行异或,生成N(N就是FEC的冗余度)个FEC报文,打包出去。这组报文任意丢其中的N个,都可以通过这组(M-N)个报文+FEC冗余包恢复回来 利用原理:XOR(异或算法) WebRTC里面默认使用Red+ulp的FEC 构建流程 SendVideoPacketAsRedMaybeWithUlpfec()函数完成下列四件事情 1.把本rtp数据包【需要保...原创 2019-09-24 16:52:26 · 1334 阅读 · 0 评论 -
WebRTC学习DAY07(ULPFEC)
分析来说,在WebRTC中使用ULPFEC其实是动态的,媒体包来自于同一帧,并将其打成RTP包列表,冗余包的个数来自于FecProtectionParams函数中的fec_rate,即冗余度,这个是动态的 假设媒体包为M个,冗余包为N个,采用某类掩码表(random或者bursty), 那么ForwardErrorCorrection::GenerateFecPayload根据packet_m...原创 2019-09-25 15:52:57 · 415 阅读 · 0 评论 -
WebRTC学习DAY08(ULPFEC)
ULPFEC 编码学习总结 在DAY05中分析了逻辑上FEC的构造https://blog.csdn.net/qq_32019929/article/details/101204082 在DAY06中分析了WebRTC中FEC的使用流程和基本参数https://blog.csdn.net/qq_32019929/article/details/101287808 在DAY07中简要分析了...原创 2019-09-27 18:21:44 · 504 阅读 · 0 评论 -
WebRTC学习DAY09(ULPFEC)
UlpFec的解码过程分析 在WebRTC中,Fec的传输是通过封装为Red包进行的,因此在接收的时候,是以Red包进行接收的。 1.把接收到的Red包进行解包,转换为Rtp包或者Fec包处理 此处调用ulpfec_receiver_impl中的AddReceivedRedPacket去掉Red头部获得Rtp/Fec包 2.将Rtp/Fec存入对应的位置 此处调用ulpfec_recei...原创 2019-09-29 16:09:53 · 596 阅读 · 1 评论