RTP协议
Posted vczf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RTP协议相关的知识,希望对你有一定的参考价值。
概述
-
RTP:实时传输协议(Real-time Transport Protocol)
- RTP/RTCP 是实际传输数据的协议
- RTP 传输音频 / 视频数据,如果是 PLAY,Server 发送到 Client 端,如果是 RECORD,可以由 Client 发送到 Server
- 整个 RTP 协议由两个密切相关的部分组成:RTP 数据协议和 RTP 控制协议(即 RTCP)
-
RTSP:实时流协议(Real Time Streaming Protocol,RTSP)
- RTSP 的请求主要有 DESCRIBE,SETUP,PLAY,PAUSE,TEARDOWN,OPTIONS 等,顾名思义可以知道起对话和控制作用
- RTSP 的对话过程中 SETUP 可以确定 RTP/RTCP 使用的端口,PLAY/PAUSE/TEARDOWN 可以开始或者停止 RTP 的发送,等等
-
RTCP:RTP 控制协议(RTP Control Protocol)
- RTP/RTCP 是实际传输数据的协议
- RTCP 包括 Sender Report 和 Receiver Report,用来进行音频 / 视频的同步以及其他用途,是一种控制协议
RTP
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|X| CC |M| PT | sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | synchronization source (SSRC) identifier |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| contributing source (CSRC) identifiers |
| .... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
从 RTP 数据报的格式不难看出,它包含了传输媒体的类型
、格式
、序列号
、时间戳
以及是否有附加数据等信息,这些都为实时的流媒体传输提供了相应的基础。
字段解析
字段 | 位宽 | 含义 |
V | 2 | 此域定义了RTP的版本。此协议定义的版本是2。 |
P | 1 | 填充标志,如果 P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。 |
X | 1 | 扩展标志,如果 X=1,则在 RTP 报头后跟有一个扩展报头。 |
CC | 4 | CSRC计数包含了跟在固定头后面CSRC识别符的数目。 |
M | 1 | 标记,不同的有效载荷有不同的含义,对于视频 ,标记一帧的结束;对于音频 ,标记会话的开始。 |
PT | 7 | 有效载荷类型,用于说明 RTP 报文中有效载荷的类型,如 GSM 音频、JPEM 图像等。 |
sequence number | 16 | 每发送一个RTP数据包,序列号加1,接收端可以据此检测丢包和重建包序列。序列号的初始值是随机的(不可预测),以使即便在源本身不加密时(有时包要通过翻译器,它会这样做),对加密算法泛知的普通文本攻击也会更加困难。 |
timestamp | 32 |
时戳反映了该 RTP 报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。 视频:sps pps和后面的I帧的时间戳是相同的,一个NALU分包发送的时间戳也是一样的。 |
SSRC | 32 | 用以识别同步源。标识符被随机生成,以使在同一个RTP会话期中没有任何两个同步源有相同的SSRC识别符。尽管多个源选择同一个SSRC识别符的概率很低,所有RTP实现工具都必须准备检测和解决冲突。若一个源改变本身的源传输地址,必须选择新的SSRC识别符,以避免被当作一个环路源。 |
CSRC | 32 | 每个 CSRC 标识符占 32 位,可以有 0~15 个。每个 CSRC 标识了包含在该 RTP 报文有效载荷中的所有特约信源。 |
以上是关于RTP协议的主要内容,如果未能解决你的问题,请参考以下文章