前言
交通部与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 |
4 | V | 2 BITS | 固定为 2,RTP 协议的版本号,占 2 位,当前协议版本号为 2 |
P | 1 BIT | 固定为 0,填充标志,占 1 位,如果 P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分 | |
X | 1 BIT | RTP 头是否需要扩展位,固定为 0,占 1 位,如果 X=1,则在 RTP 报 头后跟有一个扩展报头 | |
CC | 4 BITS | 固定为1 | |
5 | M | 1 BIT | 标志位,确定是否是完整数据帧的边界 |
PT | 7 BITS | 负载类型,见表 19 | |
6 | 包序号 | WORD | 初始为 0,每发送一个 RTP 数据包,序列号加 1 |
8 | SIM 卡 | BCD[6] | 终端设备 SIM 卡号 |
14 | 逻辑通道号 | BYTE | 按照 JT/T 1076-2016 的表 |
15 | 数据类型 | 4 BITS | 0000:视频 I 帧; 0001:视频 P 帧; 0010:视频 B 帧; 0011:音频帧; 0100:透传数据 |
分包处理标记 | 4 BITS | 0000:原子包,不可被拆分; 0001:分包处理时的第一个包; 0010:分包处理时的最后一个包; 0011:分包处理时的中间包。 | |
16 | 时间戳 | BYTE[8] | 标识此 RTP 数据包当前帧的相对时间,单位毫秒(ms)。当数据类型 为 0100 时,则没有该字段 |
24 | Last I Frame Interval | WORD | 该帧与上一个关键帧之间的时间间隔,单位毫秒(ms),当数据类型 为非视频帧时,则没有该字段 |
26 | Last Frame Interval | WORD | 该帧与上一帧之间的时间间隔,单位毫秒(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"
}