【RTSP/RTP流媒体】6、RTP协议简单分析

RTP(实时传输协议)在多点传送(多播)或单点传送(单播)的网络服务上,提供端对端的网络传输功能,适合应用程序传输实时数据,如:音频,视频或者仿真数据。

6.1、固定头



l  版本(V)

2比特。此域定义了RTP的版本。

l  填充(P)

1比特。P=1,则此包包含一到多个附加在末端的填充比特,填充比特不算作负载的一部分。填充的最后一个字节指明可以忽略多少个填充比特。填充可能用于某些具有固定长度的加密算法,或者用于在底层数据单元中传输多个RTP包。

l  扩展(X)

1比特。若X=1,在RTP报头后面跟随一个扩展包头。

l  CSRC计数(CC)

4比特。CSRC 标识符的个数。

l  标志(M)

1比特。标志的解释由具体协议规定。它用来允许在比特流中标记重要的事件,如帧边界(通常若M =1,则为一帧数据的最后一个RTP包)。

l  负载类型(PT)

7比特。此域定义了负载的格式,由具体应用决定其解释。协议可以规定负载类型码和负载格式之间一个默认的匹配。其他的负载类型码可以通过非RTP方法动态定义。RTP发送端在任意给定时间发出一个单独的RTP负载类型。

l  序列号(sequence number)

16比特。每发送一个RTP数据包,序列号加1,接收端可以据此检测丢包和重建包序列。序列号的初始值是随机的。    

l  时间戳(timestamp)

32比特。时间戳反映了RTP数据包中第一个字节的采样时间。时间戳的初始值应当是随机的,就像序号一样。几个连续的RTP包如果是同时产生的,如:属于同一个视频帧的RTP包,将有相同的序列号。如果数据并不是以它采样的顺序进行传输,那么连续的RTP包可以包含不是单调递增(或递减)的时间戳。不同媒体流的RTP时间戳可能以不同的速率增长,而且会有独立的随机偏移量。因此,虽然这些时间戳足以重构一个单独的流的时序,但直接比较不同的媒体流的时间戳不能有效的进行同步。

l  同步源标识符(SSRC)

32比特。用以识别同步源。标识符应该被随机生成,以使在同一个RTP会话期中没有任何两个同步源有相同的SSRC识别符。

l  CSRC列表

0到15项,每项32比特。CSRC列表指出了对此包中负载内容的所有贡献源。识别符的数目在CC域中给定。若有贡献源多于15个,仅识别15个。

6.2、扩展头


若RTP头中的扩展比特位置1(X=1),则一个长度可变的头扩展部分被加到RTP固定头之后。头扩展包含16比特的长度域,指示扩展项中32比特字的个数,不包括4个字节扩展头。RTP固定头之后只允许有一个头扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值