1.GB/T 28181 —2016协议简介:
近年来,国内视频监控应用发展迅猛,系统接入规模不断扩大,涌现了大量平台提供商,平台提供商的接入协议各不相同,终端制造商需要给每款终端维护提供各种不同平台的软件版本,造成了极大的资源浪费。各地视频大规模建设后,省级、国家级集中调阅,对重特大事件通过视频掌握现场并进行指挥调度的需求逐步涌现,然而不同平台间缺乏统一的互通协议。在这样的产业背景下,基于终端标准化、平台互联互通的需求,GB/T28181应运而生。 GB28181标准规定了公共安全视频监控联网系统(以下简称联网系统) 的互联结构, 传输、 交换、 控制的基本要求和安全性要求, 以及控制、 传输流程和协议接口等技术要求。
2.GB28181包含的的主要功能有以下几个部分(后续文章中对其各个功能进行解析介绍):
- SIP代理向服务器发起注册和注销;
- 实时视音频点播;
- 设备控制(上下左右、焦距、巡航、预置位、布/撤防、辅助开关、看守卫等);
- 报警事件通知和分发;
- 网络设备信息和查询;
- 状态信息报送(与心跳保活连用);
- 设备视音频文件检索;
- 历史视音频回放;
- 视音频文件下载;
- 校时;
- 订阅和通知;
- 语音广播和语音对讲。
以上功能就是GB28181协议所要介绍的主要内容,整个GB28181协议都是围绕以上功能进行展开介绍的 。
3.GB28181项目的设计思路逻辑图如下:
4.SIP协议(从此处开始将介绍所需的必备知识储备简介):
SIP协议:会话初始协议(支持语音、视频、数据等多媒体业务)。GB28181协议是以sip协议为核心进行规定的。
5.网络传输协议要求:
联网系统网络层为ip协议,传输层为tcp/udp协议。
6.IP协议:
IP协议:是tcp/ip协议的核心,所有的TCP/UDP/IMCP/IGMP都是以ip协议传输的,ip不是可靠协议,一般用于网络层中的点对点通信等。
7.GB28181协议——流媒体几种传输方式(UDP、TCP被动、TCP主动模式):
- UDP协议:(User Datagram Protocol)用户数据包协议。简单、快速、可靠度低。
- TCP协议:(Transmission Control Protocol)传输控制协议。复杂、缓慢、可靠。
- UDP:平台监听UDP端口,通过INVITE信令告知设备端UDP端口号,设备端通过告知的端口创建UDP SOCKET,设备端通过这个SOCKET主动向平台传输码流。
- TCP被动:平台监听TCP端口,通过INVITE信令告知设备端的TCP端口号,设备通过这个连接主动向 平台传输码流。
- TCP主动:在UDP模式和TCP被动模式中,平台端是server,设备端是client,但是在TCP主动模式中, 设备端为server,平台端为client。设备端告知平台端监听的TCP端口情况(通过SDP协议),当设备端监 听到平台端连接时,将主动向这个连接发起码流。
8.SDP协议:
SDP协议:描述多媒体会话的应用层协议(文本协议)。以下为各个字段的含义。

V:协议版本 O:所有者/创建者会话标识 S:会话名 U:视音频文件的URI
C:连接信息 T:回放/下载时的开始/结束时间 M:媒体描述类型(video/audio)
B:宽带信息 A:零或多个媒体行属性 Y:一般指一路数据流的id F:一般指媒体描述
9.控制描述协议(MANSCDP):
(1)请求命令:
Contral(控制)、Query(查询)、Notify(通知)。
(2)应答命令:
Response(请求动作应答)。
(3)全局类型名称及说明:
deviceIDType(设备编码类型)、statusType(状态类型)、resultType(结果类型);
PTZType(控制码类型)、recordType(录像控制类型)、guardType(布防/撤防控制类型);
itemType(设备目录项类型)、itemFileType(文件目录项类型)。
10.MESSAGE消息头含义:
Message消息体格式如下:
Messagesip:目的设备编码@目的域名或IP地址端口SIP/2.0
To:sip:目的设备编码@目的域名
Content-Length:消息实体的字节长度
CSeq:1Message
Call-ID:a84b4c76e66710
Via:SIP/2.0/UDP 源域名或IP地址
From:<sip:源设备编码@源域名>;tag=237f57dc
Content-Type:Application/MANSCDP+xml
Max-Forwards:69
Header | 含义说明 |
Via | Via头域是被服务器插入request中,用来检查路由环的,并且可以使response根据via找到返回的路 |
Max-Forwards | 用于表示这个包最多可以传送多少跳,每经过一跳都会减一当Max-Forwards==0系统会返回483。默认为70 |
From | 表示请求的发起者 |
To | 表示请求的接收者 |
Call-ID | 对话的地址ID |
Contact | 包含源的URI信息,用来给响应方直接和源建立连接用 |
Content-Type | 指明消息体的类型 (SDP会话描述协议) |
Content-Length | 指明消息体的字节大小 |
11.常见的状态码:
状态码 | 含义 |
1xx | 临时响应、表示请求消息正在被处理 |
2xx(200) | 成功响应、表示请求已被成功接收完全理解并接收(成功响应) |
3xx(302) | 重定向响应、表示需采取进一步完成请求(临时迁移) |
4xx | 客户机错误、表示请求消息中包含语法错误信息或服务器无法完成客户机的请求 |
5xx(504) | 服务器错误、表示服务器无法合法完成请求(服务器超时) |
6xx(600) | 全局故障 、表示任何服务器都无法完成该请求(全忙) |
12.Method请求行方法:
Method | 方法说明 |
REGISTER | 注册联系信息 |
INVITE | 发起会话请求 |
ACK | INVITE 请求的响应的确认(与INVITE配套使用) |
CANCEL | 取消请求 |
BYE | 终结会话(与INVITE配套使用) |
OPTIONS | 查询服务器能力 |
MESSAGE | RFC3428对Sip协议的扩展,增加了MESSAGE方法。采用Pager Model进行通信,传递不超过1300字节的数据。 |
13.设备编码规则:编码规则A;编码规则B。
编码规则A:系统编码(20位)==中心编码(8位)+行业编码(2位)+类型编码(3位)+序号(7位)。
eg:37030000001320000023代表:山东省淄博市的社会治安路面接入网络摄像机(IPC)编码序号。
编码规则B:系统编码(16位)==中心编码(8位)+行业编码(2位)+序号(4位)+类型编码(2位)。
eg:3703000000002302代表:山东省淄博市的社会治安路面接入序号数字视频解码设备。
14.视音频的封装格式:先PS----->后RTP打包封装后进行推流拉流。
在gb28181中视音频数据是先按照ISO/IEC13818-1:2000将其封装为PS包后,再将PS包以负载形式封装为 RTP包。
PS包结构 == System Heade(系统头)+PSM(程序流图)+PESV(视频PES包)+PESA(音频PES包。如下:典型的视频关键帧PS包结构。
PS包头 | System header | PSM | PESV | PESA |
15.基于RTP的视音频基本流封装:直接将视音频数据以负载形式封装成RTP包。
- 视频流负载形式的RTP封装:
- MPEG4(负载类型97)、H264(负载类型98)、H265(负载类型98);
- 音频流的负载形式的RTP封装:
- G711A(负载类型8)、SVAC(负载类型20)、G7231(负载类型4);
16.RTP协议解析:
RTP协议 == RTP Header(RTP头部占12byte) + RTP Payload(RTP负载);
RTP payload=NALU(网络提取单元层)=NAL header(占1byte=8bit)+H264原始码流(RBSP);
RTP payload=NALU(网络提取单元层)/分包后的FU-A(分片单元)/PPS(图像参数集)+SPS(序列参数集);
17.MTU(最大传输单元):
MTU的默认值一般为1500byte,一般NALU(或FU-A)需小于MTU
FU-A的分片格式:12byte的RTP头+fu-a分片
18.RTMP与RTSP的联系与区别:
(1)联系:二者都是流媒体协议用于传输视音频数据流的。
(2)区别:
RTMP:实时消息协议(Real Time Messaging Protocol)。
底层协议:TCP。
一般用于第三方流媒体应用(B站等)。
RTSP:实时流协议(Real Time Streaming Protocol)。
底层协议:TCP和UDP。
一般用于IP摄像头、物联网设备等。
总结:
参考资料:
《GBT 28181-2016 公共安全视频监控联网系统信息传输、交换、控制技术要求》