【RTSP/RTP流媒体】6、RTP协议简单分析
2015-05-12 10:40
344 查看
RTP(实时传输协议)在多点传送(多播)或单点传送(单播)的网络服务上,提供端对端的网络传输功能,适合应用程序传输实时数据,如:音频,视频或者仿真数据。
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个。
若RTP头中的扩展比特位置1(X=1),则一个长度可变的头扩展部分被加到RTP固定头之后。头扩展包含16比特的长度域,指示扩展项中32比特字的个数,不包括4个字节扩展头。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固定头之后只允许有一个头扩展。
相关文章推荐
- 【RTSP/RTP流媒体】8、SDP协议简单分析
- 一些简单的分析RTSP、RTP/RTCP的方法和工具
- 一些简单的分析RTSP、RTP/RTCP的方法和工具
- [rtsp]协议UDP、TCP、RTP三种协议的总结分析
- 【RTSP/RTP流媒体】5、RTSP协议简单分析
- 一些简单的分析RTSP、RTP/RTCP的方法和工具
- 视频流传输协议RTP/RTCP/RTSP/HTTP的区别
- RTSP协议分析-2
- LIVE555研究之二: RTSP、RTP/RTCP协议介绍
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
- 流媒体协议(RTP/RTCP/RTSP)(一)
- TCP/IP 协议简单分析
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
- RTP协议分析三(转)
- RTP/RTSP/RTCP 协议详解
- 关于rtp协议格式分析
- UDP协议通信简单代码分析
- 流媒体传输协议(rtp/rtcp/rtsp/rtmp/mms/hls)
- RTP学习(一):流媒体协议(RTP/RTCP/RTSP)