说明
本文对GB28181协议做补充说明,规范对于细节说得比较明确,只是对于接触这个不多的人来说,阅读可能有些困难
协议简介:
协议全称:《公共安全视频监控联网系统 信息传输、交换、控制技术要求》
该协议核心的功能是实现视频、设备信息的传输、级联(把自己当做客户端,向上级传输数据),如果摄像头联网了,那么可以在任何地方查看摄像头视频
主要功能说明:
1、注册: 设备向服务器注册信息,需要在设备里面配置服务器ip,端口等信息
2、获取设备信息:能够拉取设备所有关联的摄像,像nvr设备,可能会连接多个摄像头
3、实时视音频:能够拉取设备当前实时视频数据
4、设备控制:支持向设备发送控制信息,如向球机发送云台控制(转动摄像头)
5、历史视音频查询:查看设备历史视频,需要设备有存储卡
6、历史视频回放:拉取设备指定时间段视频播放
7、历史视频下载:拉取历史视频文件
8、其他告警、语音等很少用
主要流程:
注册:
设备端配置了服务器,会主动连接服务器,发送注册信息
设备信息查询
获取设备目录信息,实际上就是向设备发送一个Message消息,文档里面的源设备和功能没关系
实时视音频播放
文档这个图也比较复杂,可以看看简化流程
简化流程
这里就是服务端向客户端发送一个invite消息,同时携带携带ssrc,流媒体服务器ip、端口 字段,设备端确认后,就会以RTSP协议连接媒体服务器
设备控制
这个就比较简单了,就是发送Message消息
历史视音频查询
这个也是发送Message消息,会返回哪些时间段有视频,文件大小等信息
历史视频回放
流程和实时播放差不多,只是发送invite消息里面控制字段不一样
历史视频下载
流程和实时播放差不多,只是发送invite消息里面控制字段不一样
关于开发和调试
如果是自己从头开发那么需要 sip协议: 和设备通信用的是sip协议为基础 rtsp协议: 设备视频流数据是通过rtsp协议上传的 FFmpeg: 可能会用到视频解码,一般是FFmpeg
对于调试:
虽说协议是标准的,像海康、大华等这些设备实现的时候可能和标准有出入,对于消息发送的时候一些字段可能不一样,一般厂商会有GB28181的联调客户端,抓包来看看他们的数据包
总结
希望对于接触这个协议的人有所帮助吧
附件:
GBT 28181-2016 公共安全视频监控联网系统信息传输、交换、控制技术要求.pdf
pan.baidu.com/s/1enIA0cFv… 提取码: f7rv