熟悉国标GB28181协议的同学都知道,国标协议在告警推送这一块定义了各种告警类型和告警参数,但就是没有定义告警的图片应该怎么上传到平台,所以,现在市面上的所有设备,几乎都不支持上传告警图片,这给我们的项目应用造成了极大的困扰,因为我们一直都信奉的是“无图无真相”的道理,甚至很多已经是“无视频无真相”的原则了!
于是,为了弥补国标GB28181协议这一缺陷,我们另辟蹊径,采用实时流抓图的方式,把告警图片给补上!具体操作流程:
- 当平台收到国标GB28181告警推送时,我们先去流媒体服务中获取当前是否存在此设备的实时流,如果有实时流,则从实时流中获取一张即时的视频帧作为快照;
- 如果当平台收到国标GB28181告警的时候,设备通道是没有实时流的情况下,平台通过INVITE指令调阅设备实时流,再通过1步骤,获取最近的一张视频帧;
- 那么,如果以上两个步骤都没有获取到视频帧作为快照,还有一套快照补救的方案,就是从设备的本地存储中,调取录像视频,获取告警时间点的视频帧,作为告警快照,入库存储;
那么,通过以上几个步骤,基本上90%以上的设备和场景都能覆盖到,大部分设备的告警都能连同告警图片一起,推送给用户,对用户是一个极其友好的事情!
后面,我们还将从实时视频转图片的方式,升级到实时视频转告警短视频,在收到告警后抓取一段时间的短视频,作为告警内容,推送给用户,此项功能后续附上!