GB28181协议
如果您从事安防监控行业应该对GB28181这个词不陌生,很多刚入行的小白可能对GB28181并不了了解,本文主要讲述
GB28181用途以及基本的协议内容。
GB28181(也被称为国标)基本的作用是解决平台之间互通的问题(广义上说摄像机、NVR也是平台)。第一个国标版本
是GB28181-2011,在这之前平台之前互通主要是采用 对方平台的SDK,比如说海康的平台A要获取大华的平台B视频流 需要
大华提供平台B的SDK。试想建一个省级综合视频大平台要汇聚管辖内各市区视频(每个市区可能有几十个不同厂家平台,部分
平台可能年代久过了厂家维护期) 都按SDK的方式对接得花多少时间和精力。有了GB28181标准以后,大家都遵守这个平台互
通只需要配置基本的GB28181基本参数信息,一般也就半天时间,运气好的可能就几分钟时间。采用GB28181以后平台互通效
率得到了很大的提升。
学习GB28181协议首先得搞清楚上级和下级概念。资源方是下级,获取资源方是上级。比如说,平台C 是 小区平台管辖小
区内数百个视频源,平台D是市级平台需要获取小区平台C下的视频,此时 平台C是下级,平台D是上级。假如平台C也是通过
GB28181获取管辖下的摄像机视频,在这个环节摄像机是下级,平台C是上级。此外,GB28181是基于sip应用层的协议,它只
规定了事务(比如注册、请求视频、请求录像、语音对讲、运镜控制、报警等)基本的流程。比如由谁先发起,关键字段是什么,
对方回复字段信息是什么,结束字段是什么等等。具体发送的信令包需符合SIP协议。很多厂商开发GB28181程序也都是基于开
源sip库,例如PJSIP。了解了这些,下面具体看下GB28181基本流程。
1. 注册(Register)
两个平台互通的第一个流程便是注册,它是有下级平台发起,注册信息包含了上级平台的ID,IP,端口等信息。如果上级平台
不需要鉴权可直接回复OK,如果需要鉴权会回复401,下级平台收到401后携带上鉴权信息(上级平台设置的用户名及密码)
再次注册。
图1. 下级向上级注册
图2. 下级向上级注册抓包信息(不鉴权)
图3. 下级向上级注册抓包信息(鉴权)
2. 保活(keepALive)
保活 消息由 下级 平台发送到上级平台,其作用是告诉上级平台本下级平台还在线。
图4. 下级向上级发送保活信令
图5. 下级向上级发送保活信令抓包
3. 获取设备信息(Catalog)
获取设备信息由上级平台发起,正常情况下下级平台收到Catalog请求后,会将自身管辖的视频源信息推送给上级。需要注意
的是,返回的Catalog信息会有两个DeviceID字段。第一个DeviceID表示的是平台ID,第二个表示的是视频通道ID(具体的视频源
设备)。另外设备的名称采用是GB2312编码,存入数据库时需做编码转换。
图6. 上级 向下级发送获取Catalog
图7. 上级 向下级获取设备命令抓包
图8. 下级向上级返回设备信息抓包
4. 请求实时流(Invite)
请求实时流由上级平台发起,信令包含 请求实时流的ID,请求实时流类型(视频或音频)、编码方式、视频接收端口等SDP
信息。下级平台收到请求实时流信令后正常情况下会回复trying以及OK,上级平台收到OK后会发送Ack进行确认。下级平台接收
到Ack后开始推送实时流。GB28181规定了实时流格式为RTP+PS,也就是先将原始裸流封装成MpegPS流,再打包Rtp格式,具体
如何封装PS流,如果打包成Rtp包可查阅相关协议。
图9. 上级向下级请求实时流
图10. 上级向下级请求实时流抓包
图11. 上级向下级请求实时流抓包
如需交流,可以加QQ群1038388075,766718184,或者微信:18355123565
抓包示例下载 地址:http://www.chungen90.com/?list_52_3/
GB28181Demo 下载地址:http://www.chungen90.com/?list_52/88.html