什么是RTP协议
扫描二维码
随时随地手机看文章
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基本上分三种类型:
1.Single NAL unitpacket 也就是实际的NAL类型,可以理解为一个包就是一帧H264数据,这个在实际中是比较多的。
2. Aggregation packet 一包数据中含有多个H264帧。
3. Fragmentationunit 一帧数据被分为多个RTP包,这也是很常见的,特别是对于关键帧。