1、协议简介
RTP是针对Internet上多媒体数据流的一个传输协议。可以实现一对一或一对多的传输情况。RTP的典型应用建立在UDP上,但也可以在TCP或ATM等其他协议之上工作。
RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制。
2、工作机制多媒体数据传输的一个尖锐的问题就是不可预料数据到达时间。但是流媒体的传输是需要数据的适时的到达用以播放和回放。
rtp协议就是提供了时间标签,序列号以及其它的结构用于控制适时数据流的播放。发送端依照即时的采样在数据包里设置了时间标签。在接受端收到数据包后,就依照时间标签按照正确的速率恢复成原始的适时的数据。
在rtp协议中,一帧数据被分割成几个包,这几个包具有相同的时间标签,但是每一个包又具有不同的序号3、协议头
①版本(V)
2位,标识RTP版本。
②填充标识(P)
1位,如设置填充位,在包尾将包含附加填充字,它不属于有效载荷。填充的最后一个字节指明可以忽略多少个填充比特。填充可能用于某些具有固定长度的加密算法
③扩展(X)
1位,如设置扩展位,固定头后跟一个头扩展。
④CSRC计数(CC)
4位,CSRC计数包括紧接在固定头后CSRC标识符个数。
⑤标记(M)
1位,标志的解释由具体协议规定。它用来允许在比特流中标记重要的事件,如 帧边界⑥载荷类型(PT)
7位,记录后面资料使用哪种编码,接收端找出相应的 decoder 解码出来。H264的为96
⑦系列号
16位,系列号随每个RTP数据包而增加1,由接收者用来探测包损失。系列号初值是随机的。
⑧时标
32位,时标反映RTP数据包中第一个八进制数的采样时刻,采样时刻必须从单调、线性增加的时钟导出,以允许同步与抖动计算。时标可以让receiver端知道在正确的时间将资料播放出来。
只有系列号而没有时标,并不能完整按照顺序的将data播放出来,因为如果data中间有一段是没有资料的,只有系列号的话会造成错误.一般rtp头以0x80 60开头
H264 over RTP基本上分三种类型:
2. Aggregation packet 一包数据中含有多个H264帧。
3. Fragmentationunit 一帧数据被分为多个RTP包,这也是很常见的,特别是对于关键帧。