规范解读

GB28181-2022相对2016,增加了设备软件升级、图像抓拍信令流程和协议接口。我们先回顾下规范说明:

图像抓拍基本要求

源设备向目标设备发送图像抓拍配置命令,携带传输路径、会话ID等信息。目标设备完成图像传输后,发送图像抓拍传输完成通知命令,采用IETF RFC 3428中的MESSAGE方法实现,命令流程见9.14.2。图像文件命名规则宜采用“设备编码(20位)、图像编码(2位)、时间编码(17位)、序列码(2位)”的形式,抓拍图像文件命名规则应符合表4的要求。图像格式宜使用JPEG,图像分辨率宜采用与主码流相同的分辨率。

命令流程

命令流程描述如下:

a)l:源设备向SIP服务器发送图像抓拍配置命令,该命令采用MESSAGE方法携带;

b)2:SIP服务器收到命令后回复200 OK响应﹔

c)3:SIP服务器向目标设备发送图像抓拍配置命令,该命令采用MESSAGE方法携带;

d)4:目标设备收到消息3后回复200 OK响应﹔

e)5:目标设备向SIP服务器发送图像抓拍配置响应命令﹔

f)6:SIP服务器收到命令后返回200 OK;

g)7:SIP服务器向源设备转发图像抓拍配置响应命令﹔

h)8:源设备收到命令后返回200 OK;

i)9:目标设备完成图像传输后发送Message消息,通知SIP服务器图像传输已完成,消息格式应符合A.2.5.7抓拍图像传输完成通知的要求;

j)10:SIP服务器收到消息9后回复200 OK响应;k)11:SIP服务器向源设备转发消息9;

l)12:源设备收到命令11后回复200 OK。

协议接口

图像抓拍协议接口满足以下要求。

a)MESSAGE消息头Content-type头域为Content-type:Application/MANSCDP+xml。

b)图像抓拍配置命令采用MANSCDP协议格式定义:配置命令消息体采用XML封装﹐消息体元数据序列格式符合A.2.3.2.1和A.2.3.2.12的格式规定。

c)图像传输方式宜采用http。当报警触发图像抓拍时,可将报警信息携带在上传路径中,用于关联抓拍的图像。

d)图像抓拍传输完成通知命令采用MANSCDP协议格式定义:配置命令消息体采用XML,封装,XML消息体格式定义符合A.2.5.1规定的前导声明,消息体元数据序列格式符合A.2.5.7的格式规定。其中,SessionID应与图像抓拍配置命令中的SessionID一致。

技术实现

快照分两部分,一部分是按照GB28181的规范要求,平台侧需要快照的时候,本地编码需要的jpeg格式上传到平台侧的图像存储服务器,另外也可以接入端本地发起快照,本地存储。

本文以Android平台GB28181设备接入模块为例,默认,我们采用的是png格式,如果需要,也可以数据回上来,编码保存成协议规范要求的jpeg格式。

//Author: daniusdk.com
class ButtonCaptureImageListener implements View.OnClickListener {@SuppressLint("SimpleDateFormat")public void onClick(View v) {if(isPushingRtmp || isRecording || isRTSPPublisherRunning || isGB28181StreamRunning){String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());String imageFileName = "dn_" + timeStamp;    //创建以时间命名的文件名称String imagePath = imageSavePath + "/" + imageFileName + ".png";Log.i(TAG, "imagePath:" + imagePath);libPublisher.SmartPublisherSaveCurImage(publisherHandle, imagePath);}else{Log.e(TAG, "快照失败,请确保在推送、录像或内置RTSP服务发布状态..");}}
}

快照成功后,会有相应的Event回调上来,对应的事件EVENT_DANIULIVE_ERC_PUBLISHER_CAPTURE_IMAGE:

class EventHandePublisherV2 implements NTSmartEventCallbackV2 {@Overridepublic void onNTSmartEventCallbackV2(long handle, int id, long param1, long param2, String param3, String param4, Object param5) {Log.i(TAG, "EventHandeV2: handle=" + handle + " id:" + id);String publisher_event = "";switch (id) {case NTSmartEventID.EVENT_DANIULIVE_ERC_PUBLISHER_STARTED:publisher_event = "开始..";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PUBLISHER_CONNECTING:publisher_event = "连接中..";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PUBLISHER_CONNECTION_FAILED:publisher_event = "连接失败..";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PUBLISHER_CONNECTED:publisher_event = "连接成功..";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PUBLISHER_DISCONNECTED:publisher_event = "连接断开..";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PUBLISHER_STOP:publisher_event = "关闭..";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PUBLISHER_RECORDER_START_NEW_FILE:publisher_event = "开始一个新的录像文件 : " + param3;break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PUBLISHER_ONE_RECORDER_FILE_FINISHED:publisher_event = "已生成一个录像文件 : " + param3;break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PUBLISHER_SEND_DELAY:publisher_event = "发送时延: " + param1 + " 帧数:" + param2;break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PUBLISHER_CAPTURE_IMAGE:publisher_event = "快照: " + param1 + " 路径:" + param3;if (param1 == 0) {publisher_event = publisher_event + "截取快照成功..";} else {publisher_event = publisher_event + "截取快照失败..";}break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PUBLISHER_RTSP_URL:publisher_event = "RTSP服务URL: " + param3;break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PUSH_RTSP_SERVER_RESPONSE_STATUS_CODE:publisher_event ="RTSP status code received, codeID: " + param1 + ", RTSP URL: " + param3;break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PUSH_RTSP_SERVER_NOT_SUPPORT:publisher_event ="服务器不支持RTSP推送, 推送的RTSP URL: " + param3;break;}String str = "当前回调状态:" + publisher_event;Log.i(TAG, str);Message message = new Message();message.what = PUBLISHER_EVENT_MSG;message.obj = publisher_event;handler_.sendMessage(message);}
}

GB/T28181-2022图像抓拍规范解读及技术实现相关推荐

  1. FFmpeg入门详解之125:onvif与GB/T-28181的小白入门

    onvif与GB/T-28181的小白入门 敬告:本系列不展开onvif和28181. 参考:详细内容请参考系列27和系列28 一.什么是ONVIF? 1.1形成 2008年5月,由安讯士(AXIS) ...

  2. 视频监控系统中H.265、SVAC、GB/T28181、ONVIF、PSIA有什么区别?

    说H.265之前我们先要弄清H.264, H.264是ITU-T以H.26x系列为名称命名的视频编解码技术标准之一.国际上制定视频编解码技术的组织有两个,一个是"国际电联(ITU-T)&qu ...

  3. 文读懂安防视频监控系统中H.265、SVAC、GB/T28181、ONVIF、PSIA的区别。

    概览 H.265是和H.26x/MPEG-x AVC一样是一种编码压缩的技术,其具体高效率的编码方式. SVAC<安全防范监控数字视音频编解码技术标准>是国家规范化的编码方式,安全防范监控 ...

  4. MIT Technology Review 2022年“全球十大突破性技术”解读

    来源:中国科学基金 自2001年起,MIT Technology Review每年都会评选出年度"全球十大突破性技术",不少在当年崭露头角的技术,如今已经深刻地改变了我们的生活,推 ...

  5. 「史上最全的 TCG 规范解读」TCG 工作组规范预览

    可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强不同计算机平台上计算环境的安全性.TCG于2003年春成立,并采纳了由可信计算平台联盟 ...

  6. 国标GB/T28181协议EasyGBS历史录像回放有多路视频流时,如何单独对某路流进行控制操作?

    引言 GB/T28181协议从本质上说和ONVIF都是一样的,目的都是为了降低视频监控设备互联的难度.该协议都是基于IP网络,如果要对接,需要有相关的协议转换模块.协议之间也并不矛盾,可以实现接入上的 ...

  7. 视频监控对接GB/T28181国标平台

    目录 一.NVR对接GB/T28181国标平台 1.判断监控设备(NVR)是否支持接入国标平台 2.监控设备通过国标协议接入视频融合平台流程 3.通过视频专网接入平台的网络拓扑 4.通过公网接入平台的 ...

  8. 结合实战,浅析GB/T28181(五)——录像下载

    1 简介 依据GB/T28181规定,视音频文件下载,主要由三部分组成:基于SIP(rfc3261)的Invite方法实现视音频文件下载会话链路的建立:基于SIP的Message实现视音频文件下载完成 ...

  9. 国标GB/T28181协议EasyGBS网络摄像机无插件视频播放器单独对某路流进行操作方法

    引言 GB/T28181协议从本质上说和ONVIF都是一样的,目的都是为了降低视频监控设备互联的难度.该协议都是基于IP网络,如果要对接,需要有相关的协议转换模块.协议之间也并不矛盾,可以实现接入上的 ...

最新文章

  1. 无代码的时代真的来了吗?
  2. easy-mock本地部署成功,访问报错:EADDRNOTAVAIL 0.0.0.0:7300 解决方案
  3. ARP监控工具ARPalert常用命令集合大学霸IT达人
  4. 学习:erlang开源项目。
  5. linux 修改权限 anyone,linux 进程管理工具
  6. 〈转贴〉如何解决 Windows XP 中的硬件和软件驱动程序问题
  7. 《Java 高并发》03 线程的生命周期
  8. 给定条件找最小值c语言程序_根据给定条件最小化n的最小步骤
  9. 图的四种最短路径算法
  10. petshop4.0 详解之五(PetShop之业务逻辑层设计)
  11. linux输密码复制,在Linux下用scp复制文件无需输入密码的技巧
  12. Golang 退出chroot环境的方法
  13. 第九课 如何调试以太坊官网的智能合约众筹案例
  14. dlopen()失败怎么办?
  15. 了解 Nginx 主要应用场景
  16. odoo13 订单模板设置_ERP输出嵌入公章的采购订单电子档,其实真的不难
  17. 基于Spark的电影推荐系统实现
  18. Zipf齐夫分布及Java实现
  19. Jeecgboot报错Failed to configure a DataSource: ‘unl‘ attribute is not specified and no embedded dataso
  20. tank game V0.1

热门文章

  1. win7无法打开计算机共享文件夹,Win7共享文件夹无法访问怎么办?Win7共享文件夹无法访问解决方法...
  2. 最小攻击超过最大攻击_贪婪洞窟攻击力解析 最大攻击与最小攻击对比分析
  3. wget下载到一半断了,重连方法
  4. 弘辽科技:怎样的淘宝店铺装修更能吸引顾客
  5. C语言中的%p是什么意思?
  6. 人参果水果宣传文案模版,水果店文案人参果
  7. VML实例及两个网站
  8. PAT_乙级_1013_筱筱
  9. java静态变量、静态方法、代码块、main方法
  10. 用Python计算利率,告诉你亏了多少!