JT/T1078-RTP音视频解包代码分析

前言

交通部与2016年10月份推出了JT/T 1078-2016标准,全称是《道路运输车辆卫星定位系统视频通信协议》。该标准将改变以往两客一危车辆的视频监控设备通信协议都是设备厂商私有协议的局面。

部标1078协议和808协议的区别: 部标1078协议文档明确说明了,协议是在JT/T 808协议的基础上进行增加了大量的视频指令,以前的终端32位报警,由于增加了视频报警,拓展为64位报警。终端参数中也增加了大量与视频相关的参数设置。协议的通信方式、数据类型、传输规则和消息组成按照 JT/T 808-2011中第 4 章的要求。协议中信令数据报文的通信连接方式按照 JT/T 808-2011中第 5 章的要求。协议中信令数据报文的消息处理机制按照 JT/T 808-2011中第 6 章的要求。协议中信令数据报文的加密机制按照 JT/T 808-2011中第 7 章的要求。 可见1078协议仍然是基于部标808协议继续拓展的协议指令集。

格式描述

起始字节字段数据类型描述及要求
0帧头标识DWORD固定为 0x30 0x31 0x63 0x64
4V2 BITS固定为 2,RTP 协议的版本号,占 2 位,当前协议版本号为 2
P1 BIT固定为 0,填充标志,占 1 位,如果 P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分
X1 BITRTP 头是否需要扩展位,固定为 0,占 1 位,如果 X=1,则在 RTP 报
头后跟有一个扩展报头
CC4 BITS固定为1
5M1 BIT标志位,确定是否是完整数据帧的边界
PT7 BITS负载类型,见表 19
6包序号WORD初始为 0,每发送一个 RTP 数据包,序列号加 1
8SIM 卡BCD[6]终端设备 SIM 卡号
14逻辑通道号BYTE按照 JT/T 1076-2016 的表
15数据类型4 BITS0000:视频 I 帧;
0001:视频 P 帧;
0010:视频 B 帧;
0011:音频帧;
0100:透传数据
分包处理标记4 BITS0000:原子包,不可被拆分;
0001:分包处理时的第一个包;
0010:分包处理时的最后一个包;
0011:分包处理时的中间包。
16时间戳BYTE[8]标识此 RTP 数据包当前帧的相对时间,单位毫秒(ms)。当数据类型
为 0100 时,则没有该字段
24Last I Frame IntervalWORD该帧与上一个关键帧之间的时间间隔,单位毫秒(ms),当数据类型
为非视频帧时,则没有该字段
26Last Frame IntervalWORD该帧与上一帧之间的时间间隔,单位毫秒(ms),当数据类型为非视
频帧时,则没有该字段
28数据体长度WORD后续数据体长度,不含此字段。
30数据体BYTE[n]音视频数据或透传数据,长度不超过 950 byte

消息包举例

消息包

30 31 63 64 81 E2 10 88 01 12 34 56 78 10 01 10 00 00 01 6B B3 92 CA 7C 02 80 00 28 00 2E 00 00 00 01 61 E1 A2 BF 00 98 CF C0 EE 1E 17 28 34 07 78 8E 39 A4 03 FD DB D1 D5 46 BF B0 63 01 3F 59 AC 34 C9 7A 02 1A B9 6A 28 A4 2C 08

解析消息包

{
  "[30316364]头部": 808543076,
  "[10000001]object1[81]": {
    "(10)V[固定为2]": 2,
    "(0)P[固定为0]": 0,
    "(0)X[RTP头是否需要扩展位固定为0]": 0,
    "(0001)CC[固定为1]": 1
  },
  "[11100010]object2[E2]": {
    "(1110)M[确定是否是完整数据帧的边界]": 1,
    "(0010)PT[负载类型]": "H264"
  },
  "1088[序列号]": 4232,
  "[终端设备SIM卡号]": "011234567810",
  "01[逻辑通道号]": 1,
  "[00010000]object3[10]": {
    "(0001)[数据类型]": "视频P帧",
    "(0000)[分包处理标记]": "原子包_不可被拆分"
  },
  "0000016BB392CA7C[标识此RTP数据包当前帧的相对时间,单位毫秒(ms)]": 1562085870204,
  "0280[该帧与上一个关键帧之间的时间间隔,单位毫秒(ms)]": 640,
  "0028[该帧与上一个关键帧之间的时间间隔,单位毫秒(ms)]": 40,
  "002E[数据体长度]": 46,
  "[数据体]": "00 00 00 01 61 E1 A2 BF 00 98 CF C0 EE 1E 17 28 34 07 78 8E 39 A4 03 FD DB D1 D5 46 BF B0 63 01 3F 59 AC 34 C9 7A 02 1A B9 6A 28 A4 2C 08"
}
(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年3月1日 上午8:42
下一篇 2023年3月1日 下午2:40

相关推荐

  • JT/T808-2001 部标协议 协议解析

    1.包详解 解析之前复习下C#的数据结构,以及对应JT/L808-2011里面的数据类型。 JT/T808 C#数据类型 JT/T808描述 C#描述 BYTE BYTE 无符号单字节整型(字节, 8 位) 以二进制补码表示的整数 WORD short 无符号双字节整型(字节,16位) short数据类型是16位、有符号的以二进制补码表示的整数 DWORD …

    部标协议 2023年3月1日
    00
  • 部标809协议2019版本与2011版本的区别

    部标809协议2019版本与2011版本的区别 新旧标准差异 差异解读及备注 2019版 2011版 章节号 内容 章节号 内容 修改了上级平台、下级平台的术语和定义 定义更清晰、更精准 3.1.2 上级平台:提供其他平台接入的监管平台,包含更低一级的监管平台 3.1.2 上级平台:提供其他平台接入的政府监管平台 3.1.3 下级平台:监控平台、监管平台中接…

    部标协议 2023年3月1日
    00

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信