在探讨这个问题之前,我们先看看GB/T28181-2016官方文档怎么说的,9.10.1章节校时基本要求提到:联网内设备支持基于SIP方式或 NTP方式的网络校时功能,标准时间为北京时间。 SIP方式校时见本节具体描述;NTP(见IETFRFC2030)协议的网络统一校时服务,网络校时设备分为时钟源和客户端,支持客户/服务器的工作模式,时钟源应支持 TCP/IP、UDP及 NTP协议,将输入的或是自身产生的时间信号以标准的 例如:SIP代理与SIP服务器校时后,SIP代理运行10h后设备时间与SIP服务器时间相差大于1s,则宜将注册过期时间设置为10h(36000s),以保证SIP代理与SIP服务器之间时 间误差小于1s。 废话不多说,以我们Android平台GB28181设备接入模块为例,先启动GB28181服务: class ButtonGB28181AgentListener implements View.OnClickListener 国标设备接入端校时协议规范和相关实现流程,感兴趣的开发者可酌情参考。
一、引言随着视频监控技术的不断发展,国标 GB28181 协议在安防监控领域得到了广泛应用。该协议为不同厂家的视频监控设备之间的互联互通提供了统一的规范,使得设备的接入与管理变得更加简单和高效。 在 Android 平台上实现 GB28181 设备接入,可以拓展设备的应用场景,提升用户体验。 本文将从专业技术的角度,详细介绍 Android 平台如何实现 GB28181 设备接入到国标 28181 服务平台。 Android 平台具有丰富的硬件资源和强大的软件开发能力,通过在 Android 设备上实现 GB28181 协议,可以使其具备与国标服务平台进行通信的能力,从而实现设备的接入和监控功能。 信令处理根据 GB28181 协议要求,实现信令的编解码、交换与处理等功能。利用 Socket 编程实现与设备的通信,遵循 GB28181 协议规定的信令格式和流程。
以下是GB28181协议的一些主要内容:设备互联互通GB28181协议的核心是实现不同厂商、不同品牌、不同型号的设备之间的互联互通。 设备管理视频监控系统中,设备的管理和维护是非常重要的。GB28181协议定义了设备的注册、认证、授权、配置等管理操作,以及设备状态监测、故障诊断等功能,为系统的稳定运行提供了保障。 数据交互GB28181协议支持设备之间的数据交互,包括视频、音频、报警信息等数据的共享和转发。同时,还支持设备的控制指令和命令的传递,实现了系统中的双向通信。 总之,GB28181协议是一种适用于视频监控系统的互联互通协议,它具有设备互联互通、实时流传输、设备管理、数据交互和安全保障等特点。 Android平台如何实现GB28181设备对接?
技术背景 在实现Android平台GB28181前端设备接入之前,我们几年前就有了非常成熟的RTMP推送、RTSP推送和轻量级RTSP服务等模块,特别是RTMP推送,行业内应用非常广泛,好多开发者可能会问 首先,我们了解下GB/T28181: 国标GB/T28181协议全称《安全防范视频监控联网系统信息传输、交换、控制技术要求》,是一个定义视频联网传输和设备控制标准的白皮书,由公安部科技信息化局提出,该标准规定了城市监控报警联网系统中信息传输 解决了视频间互联互通,数据共享,以及设备控制的问题,这个问题从顶层解决了视频信息各自为战的问题,打通了视频联网的信息孤岛。 功能设计 Android端GB28181前端设备模块,支持常规的视频采集、编码设定,功能设计如下: [本地预览]支持本地前后置摄像头预览; [视频格式]H.264/H.265(Android H.265 设计,除了支持TCP和UDP传输外,支持信令和数据传输分离,可实现其他终端针对前端设备的按需播放和处理,无需单独的信令支撑。
技术优势大牛直播SDK的Android平台GB28181设备接入模块在适用场景、音视频能力、定位与通信、数据管理、安全性与稳定性、配置与扩展性以及集成与维护等方面均表现出显著的优势。 高效的定位与通信功能内置定位模块:支持Android设备采集到的北斗/GPS定位信息,实时上报设备位置信息,帮助指挥中心准确掌握巡检人员的位置和巡检进度。 如何快速集成大牛直播SDK的Android平台GB28181设备接入SDK(SmartGBD)的集成过程相对复杂,但主要可以归纳为以下几个关键步骤:一、准备工作环境要求: 确保你的Android开发环境支持 SIP代理设置: 使用GB28181的SIP代理类(如GBSIPAgent)来管理SIP连接和信令。三、注册设备发送注册请求: 使用SIP代理发送注册请求到SIP服务器。 语音广播与对讲: 支持在Android平台GB28181设备侧与GB服务器之间进行语音通信(broadcast)。位置订阅与通知: 允许设备在需要时报告其位置(MobilePosition)。
为什么要选GB28181?好多开发者跟我们做沟通交流的时候,问的比较多的问题是,你们是怎么想到做Android平台GB28181设备接入模块的? 为什么有了RTMP推送模块、轻量级RTSP服务模块,还要费时费力的做GB28181设备接入模块?GB28181规范有什么优势或特点? 同时,还可以对设备进行远程配置和升级,降低了设备维护的成本和难度。便于系统集成: 与安防系统集成:GB28181 协议具有良好的扩展性,能够与其他安防系统(如报警系统、门禁系统等)进行无缝集成。 环境监测:结合环境监测设备,GB28181协议可以实时传输空气质量、水质等环境数据,为环境保护提供科学依据。 商业楼宇管理:在商业楼宇中,GB28181协议可以整合各类安防设备,提高楼宇的安全性和管理效率。
设备控制设备控制基本要求源设备向目标设备发送设备控制命令,控制命令的类型包括球机/云台控制、远程启动、录像控制、 报警布防/撤防、报警复位、强制关键帧、拉框放大、拉框缩小、看守位控制、设备配置等。 源设备向目标设备发送录像控制、报警布防/撤防、 报警复位、看守位控制、设备配置命令后,目 标设备应发送应答命令表示执行的结果。 TeleRoot技术实现本文以我们实现的Android平台GB28181设备对接模块为例,如果GB平台端支持远程启动,发送的信令如下: MESSAGE sip:34020000011310000038 null; gb_broadcast_target_id_ = null; btnGB28181AudioBroadcast.setText("GB28181 return this; } }.set(deviceId, teleBootValue),0); }需要注意的是,由于国标平台虽有统一标准,但是实现细节并不统一,在做GB28181
技术背景语音广播功能是GB28181设备接入端非常重要的功能属性,语音广播让终端和平台之间,有了实时双向互动,可以满足执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通 这里我们先回顾下GB28181规范关于语音广播的描述:语音广播功能实现用户通过语音输入设备向前端语音输出设备的语音广播。 技术实现本文我们不再探讨GB28181语音广播的具体流程,这里我们假定信令交互已经完成,准备接收数据:图片收到broadcast语音广播后,我们的处理逻辑如下:private boolean startAudioPlay 其中PlayerExternalPCMOutput()主要是把数据塞到GB28181数据采集处理的模块,来实现语音广播的回音消除的目的。 SmartPlayerStopPlay(player_handle_); lib_player_.SmartPlayerClose(player_handle_); player_handle_ = 0; }}总结GB28181
Media NDK硬编码,需要Android 5.0以上系统,而且接口并不像原生那么全: /** * 设置视频硬编码是否使用 Native Media NDK, 默认是不使用, 安卓5.0以下设备不支持 CBR, 3:CBR_FD, 请参考:android.media.MediaCodecInfo.EncoderCapabilities* 注意硬编码和手机硬件有关,多数手机只支持部分码率模式, 另外硬编码设备差异很大 ,不同设备同一码率控制模式效果可能不一样* @return {0} if successful*/public native int SetVideoHWEncoderBitrateMode(long ;}总结GB28181-2022针对H.265描述,是2016的补充,随着今年七月份开始针对2022的实施推广,相信GB28181这块会应用到各行各业,如执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育 GB28181设备接入端支持H.265难度不大,平台侧如果需要web播放,一般来说是需要转H.264在播放,对国标平台侧的专门性能提高了要求,如果是cs架构,问题不大。
实现Android平台GB28181设备接入的时候,有个功能点不可避免,那就是本地录像,实际上,在实现GB28181设备接入模块之前,我们前些年做RTMP推送和轻量级RTSP服务的时候,早已经实现了本地录像功能 btnPauseRecorder.setEnabled(true); isPauseRecording = true; } }实际上,本地录像和GB28181 上去的数据,是同一路编码数据,当然,如果做的更智能一些,也可以分两个实例来实现,一路编码用于GB28181平台接入,一路高分辨率帧率,用于本地录制,具体根据使用场景定制即可。
Android平台GB28181设计开发的时候,有个功能必不可少的:实时快照,特别是用于执法记录仪等场景下,用于图像留底或分析等考量。 libPublisher.SmartPublisherSaveCurImage(publisherHandle, imagePath);}else{Log.e(TAG, "快照失败,请确保在推送、录像、GB28181
目前市面上的摄像头都是以网络摄像头为主,很多用户都有查看设备IP地址的需求,此时如果没有一套摄像头管理系统,那么用户就只能自主查询摄像头IP。 不同品牌的摄像头有不同的查询方法,对用户来说,此种查询方式过于繁琐,因此我们在EasyCVR视频平台中增加了显示设备IP地址一栏。 设备如果通过国标GB28181协议接入到EasyCVR平台,在设备管理界面中,相关信息内会出现“IP地址”以及“端口”两栏。 image.png 当设备注册上来后,平台会主动获取到设备的IP地址和端口等信息,保存在Device结构体中。 这是一个内存中的数据,只需要将内存中的数据库信息同步数据库中,前端调用设备信息接口为返回相关信息,即可在前端的信息展示页面中出现。
技术背景GB/T28181是广泛应用于视频监控行业的标准协议规范,可以在不同设备之间实现互联互通。今天我们主要探讨Android平台的Audio采集部分。 技术实现本文以大牛直播SDK的Android平台GB28181设备接入侧模块为例,这里我们使用的是AudioRecord类完成audio数据源的采集,采集到audio数据,进行PCMA或AAC编码(关于 44100,1); Log.i(TAG, "CheckInitAudioRecorder call audioRecord_.start()---..."); } }鉴于GB28181 audioRecord_.RemoveCallback(audioRecordCallback_); audioRecordCallback_ = null; } audioRecord_ = null;}总结GB28181
规范解读GB/T28181-2016规范里面,9.10.1章节,关于校时基本要求:联网内设备支持基于SIP方式或 NTP方式的网络校时功能,标准时间为北京时间。 例如:SIP代理与SIP服务器校时后,SIP代理运行10h后设备时间与SIP服务器时间相差大于1s,则宜将注册过期时间设置为10h(36000s),以保证SIP代理与SIP服务器之间时 间误差小于1s。 技术实现以大牛直播SDK的Android平台GB28181设备接入模块为例:图片点击页面“启动GB28181”按钮,启动GB28181服务,完成注册和catalog交互: class ButtonGB28181AgentListener 设备接入侧可以根据返回的时间,做响应的校时处理。 以上就是GB28181国标设备接入端校时协议规范和相关实现。
技术背景为什么要开发Android平台GB28181设备接入模块? 这让我们在做Android平台GB28181设备接入模块的时候,可以有更多的精力在信令交互和国标平台对接。好多开发者会觉得,GB28181设备接入模块有啥好做的? ;支持心跳机制,支持心跳间隔、心跳检测次数设置;支持移动设备位置(MobilePosition)订阅和通知;支持语音广播;支持语音对讲;支持历史视音频文件检索;支持历史视音频文件下载;支持历史视音频文件回放 技术实现[视频格式]H.264/H.265(Android H.265硬编码)目前GB28181-2022已经明确表示支持H.265,GB28181设备接入这块,如果需要有好的画质,编码算法这块,一定需要做好 ,不同设备同一码率控制模式效果可能不一样* @return {0} if successful*/public native int SetVideoHWEncoderBitrateMode(long
PTZCmd实现背景上一篇blog“Android平台GB28181设备接入模块之球机/云台控制探究”谈到,Android平台做国标GB28181设备接入端的时候,PTZ控制要不要处理? ,可以通过Zoom In、Zoom Out来调整Android GB28181设备接入终端,实现摄像头的变焦。 其次,我们说一下技术实现难度:需要明确的一点是,目标设备不发送应答命令,所以实现起来,对我们已经有扩展性非常好的技术框架来说,难度不太大,如果从头实现,相对麻烦一些。 图片技术实现细节GB28181的云台控制命令,对Android平台设备接入端来说,难度不大,只需要把相应的云台控制命令字段回调到上层,上层做个解析,然后进行相应的命令控制即可。 Call-ID: 696469675CSeq: 342 MESSAGEContent-Type: Application/MANSCDP+xmlMax-Forwards: 70User-Agent: GB28181
EasyCVR平台支持海量视频设备接入、视频汇聚与管理、转码与分发、告警上报、平台级联、智能分析等等。平台基于云边端一体化架构,凭借其出色的视频能力,已经成为安防市场主流的视频能力层服务平台。 在功能上,EasyCVR可实现视频监控直播、录像、检索与回放、云存储、语音对讲、告警、平台级联、设备监测、远程运维等。 有用户反馈,使用国标GB28181协议将设备接入EasyCVR平台,设备可以正常接入,但是视频无法播放,于是请求我们协助排查。技术人员接到反馈后,立即针对上述问题进行了排查分析。 5)猜测是设备端与平台的兼容性问题导致。在代码中做如下修改,优化兼容性,即可解决上述问题。 平台可支持多类型的设备接入,包括传统网络摄像机、NVR、编码器、4G移动执法仪等,可覆盖市面上绝大多数监控品牌的设备。
安防视频监控平台EasyCVR支持将部署在监控现场的前端设备进行统一集中接入,可兼容多协议、多类型设备,管理员可选择任意一路或多路视频实时观看,视频画面支持单画面、多画面显示,视频窗口数量有1、4、9、 有用户反馈,在使用安防视频监控系统EasyCVR时, 接入平台的国标GB28181设备无法播放设备录像,请求我们排查与解决。 按照上述方法修改后,此时视频监控系统EasyCVR平台已经能正常播放设备录像了。 视频监控系统EasyCVR支持多协议接入、多格式流分发,分发的视频流可在多终端设备上播放,包括:电视墙、拼接电子大屏、电脑端、手机端、移动APP等,方便管理人员随时随地查看现场的监控视频。
EasyCVR在接入协议上,不仅支持国标GB28181协议、RTSP/Onvif、RTMP等标准协议,还支持HIKSDK、大华SDK、海康Ehome等厂家私有协议与SDK,可分发RTSP、RTMP、FLV 图片有用户反馈,使用EasyCVR平台的过程中,通过国标GB28181协议将设备接入,出现了自动拉流的现象,请求我们排查协助。今天我们来分享一下排查及解决方法。 图片我们初步判断可能是设备某些信令触发了平台拉流。图片于是通过抓包查看,可以看到,当设备经纬度变化时,平台在拉流获取设备的GPS位置快照信息。 图片针对上述情况,可做如下优化:在设备GPS经纬度变化时,判断地图是否实时变化,依据该条件来决定是否拉流获取快照。 平台可对外提供统一的服务API接口,实现连接设备、连接数据、连接应用,便于第三方平台快速集成。
EasyCVR平台基于云边端协同架构,可支持多协议、多类型的海量设备接入与分发,平台既具备传统安防视频监控的能力,也能接入AI智能分析的能力,在线下均有大量应用。 有用户反馈,在项目现场使用大华某型号设备通过GB28181协议接入到EasyCVR,通道列表中多出一层目录,显示如下:国标GB28181协议是设备端主动向平台注册并推送设备和通道信息,EasyCVR平台将接入的视频流进行实时展示 出现上述现象,我们可以通过抓包来排查设备实际上传的通道信息,报文如下:可以看到,在EasyCVR请求下级通道时,设备除必要的deviceID外,还携带了Parental且值为1 。 在《公共安全视频监控联网系统信息传输、交换、控制技术要求》中,有对Parental的明确定义,如下:因此,以上情况属于设备侧主动上传了组织到EasyCVR导致的。