音视频
玄哥带你飞哟
这个作者很懒,什么都没留下…
展开
-
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 · 530 阅读 · 3 评论 -
WebRTC学习DAY01
WebRTC旨在将实时通信功能引入到所有浏览器中,并通过标准的[HTML5]标签和JavaScriptAPI使得这些功能可为Web开发者使用。 WebRTC系统所包含的典型元素集:Web服务器、运行于各种设备和操作系统之上的浏览器、其他互联网通信终端WebRTC的功能...原创 2019-09-04 17:58:39 · 173 阅读 · 0 评论 -
WebRTC学习DAY02
基本WebRTC应用程序编程接口的工作方式建立会话1.获取本地媒体:WebRTC技术定义了一种最常见的方式:getUserMedia(),用于获取单个本地MediaStream,在获取一个或者多个媒体流后,使用MediaStreamAPI将它们组合到所需的流中。2.建立对等连接:RTCPeerConnection API是(WebRTC核心),即在两个对等段之间建立连接。RTCPeer...原创 2019-09-05 17:11:54 · 213 阅读 · 0 评论 -
WebRTC学习DAY03
WebRTC伪码实现此处非真正代码,但是以面向对象的方式思考,有助于之后对源代码的理解,主要了解整个实现过程由移动设备作为发起呼叫方,以PC端作为接收呼叫发移动设备:1.前提(建立信令通道,获取对等端身份)2.获取本地媒体PS:[navigator对象包含浏览器信息] function getMedia(){ //获取本地媒体 get local audio(mic...原创 2019-09-06 15:55:04 · 214 阅读 · 0 评论 -
WebRTC学习DAY04
1.WebRTC中的媒体1.1 媒体轨道MediaStreamTrack WebRTC中的基本媒体单元,代表录制内容或设备(被称为源)或者源经过转换的可返回的单一类型的媒体。不同的MediaStreamTrack对象可以代表同一媒体源。两种方式用于暂停轨道媒体:静音和禁用。静音由用户和浏览器执行,应用程序其实是无法控制轨道静音的,但是可以检查轨道的muted(消音)属性...原创 2019-09-20 17:23:18 · 226 阅读 · 0 评论 -
WebRTC学习DAY05(ULPFEC)
FEC:前向纠错WebRTC中常见两种:ULPFEC/FLEXFECULPFEC(非均等保护前向纠错)1.数据包包括:所保护的媒体数据,保护级别,对应保护级别的保护长度,偏移量掩码2.报文格式:[RTC Header只有在使用独立的数据流发送时才使用到]WebRTC采用封装在RED(冗余编码)报文中随源媒体数据一起发送,故不考虑RTPheader2.1 FEC Hea...原创 2019-09-23 18:47:00 · 908 阅读 · 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 · 1321 阅读 · 0 评论 -
WebRTC学习DAY07(ULPFEC)
分析来说,在WebRTC中使用ULPFEC其实是动态的,媒体包来自于同一帧,并将其打成RTP包列表,冗余包的个数来自于FecProtectionParams函数中的fec_rate,即冗余度,这个是动态的假设媒体包为M个,冗余包为N个,采用某类掩码表(random或者bursty),那么ForwardErrorCorrection::GenerateFecPayload根据packet_m...原创 2019-09-25 15:52:57 · 405 阅读 · 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 · 486 阅读 · 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 · 584 阅读 · 1 评论