WebRTC中RTP协议详解
@TOC
</font>
<hr style=” border:solid; width:100px; height:1px;” color=#000000 size=1”>
WebRTC专题开嗨鸭 !!!一、 WebRTC 线程模型
2、WebRTC网络PhysicalSocketServer之WSAEventselect模型使用
二、 WebRTC媒体协商
1、WebRTC媒体协商之SDP中JsepSessionDescription类结构分析
三、 WebRTC 音频数据采集
四、 WebRTC 音频引擎(编解码和3A算法)
五、 WebRTC 视频数据采集
六、 WebRTC 视频引擎( 编解码)
七、 WebRTC 网络传输
2、WebRTC的ICE之Dtls/SSL/TLSv1.x协议详解
八、 WebRTC服务质量(Qos)
3、WebRTC之NACK、RTX 在什么时机判断丢包发送NACK请求和RTX丢包重传
九、 NetEQ
十、 Simulcast与SVC
前言
RTP协议 在流媒体中是传输媒体数据的载体
一、RTP/RTCP在协议栈中的位置
1、 RTP传输流程图
二、RTP Header 的结构图
1、RTP Header 协议字段解析
v : 版本 P : 填充数据 1:代表有填充数据 0: 没有补充数据 X : 是否有扩展头,1: 有扩展头 0:没有扩展头
CC : 这个源那些人产生的 csrc的个数 几个贡献者M :代表视频帧的最后一个帧 1:是视频帧的最后一帧, 0:不是最后一帧视频帧 PT : 代表payloadType, 数据负载类型 例如: 音频:ops:101, 视频:127 Sequence Number: 数据有序 timestamp: 产生时间戳 ssrc:源(多路视频流ssrc判断) csrc:数据有几个贡献者
2、 视频帧分包
序号1~3:为一个完整视频帧(I、P、B)
s:的意思是视频一帧分包 开始位置 e是结束一帧标志位
3、 RTP的扩展头
①、 扩展头Profile 分为两种类型
profile:占用两个字节
两种类型分别是下载
- profile值为0XBE、0XDE、扩展项的ID和len占一个字节
- profile值为0X10、0X0X,扩展项的ID和len占两个字节
②、扩展头length
表示后面跟着的扩展头有几个字节 扩展头长度以4字节为单位
如length为3,说明扩展头长度占12字节
1. 一个字节扩展头如图所示 2. 两个字节的扩展头例子三、WebRTC用到的扩展头
1. WebRTC 中扩展头详细信息对应代码与声明
src/api/rtp_paramerters.h 中的RtpExtension结构 src/api/rtp_parameters.cc 中实现 src/modules/rtp_rtcp/source/rtp_header_extensions.cc 格式详细
四、 完整的RTP头
总结:
WebRTC源码分析地址:https://github.com/chensongpoixs/cwebrtc