国标GB28181中的rtp over tcp

2022-06-10 20:00:08 浏览数 (1)

01 GB28181中的RTP over TCP

GB28181的TCP码流遵循的标准是RFC4571(RTP OVER TCP),具体类型是:

代码语言:javascript复制
    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
    ---------------------------------------------------------------
   |             LENGTH            |  RTP or RTCP packet ...       |
    ---------------------------------------------------------------

详细协议文档可以参考《rfc4571.Framing-Real-time-Transport-Protocol-(RTP)-and-RTP-Control-Protocol-(RTCP)-Packets-over-Conn.pdf》文档

02 RTSP中的RTP over TCP

RTSP中tcp码流是遵循的RFC2326标准,

详细介绍参考公众号历史文章:《RTP over TCP》

代码语言:javascript复制
| magic number | channel number | data length | data  |magic number - 

magic number:RTP数据标识符,"$" 一个字节
channel number:信道数字 - 1个字节,用来指示信道
data length :数据长度 - 2个字节,用来指示插入数据长度
data :数据 - ,比如说RTP包,总长度与上面的数据长度相同

RTP,RTCP数据和RTSP数据共享TCP数据通道,所以必须有一个标识来区别三种数据:

  • RTP和RTCP数据会以$符号+1个字节的通道编号+2个字节的数据长度,共4个字节的前缀开始,
  • RTSP数据是没有前缀数据的。
  • RTP数据和RTCP数据的区别在于第二个字节的通道编号

03

两个标准的区别

  • RFC4571标准格式: 长度(2字节) RTP头 数据
  • RFC2326标准格式:$(1字节) 通道号(1字节) 长度(2字节) RTP头 数据

提示

上面所说的长度,都是网络字节序。

0 人点赞