好多开发者希望我们不是从代码级,而是从流程方面,大概介绍下Android端GB28181设备接入段模块。本文以SmartGBD的Camera2Demo为例,大概聊下相关的集成流程。 、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工地、雪亮工程、平安乡村、生产运输、车载终端等场景,可能是业内为数不多功能齐全性能优异的商业级水准GB28181接入SDK。 以下是一个详细的集成指南:一、准备工作导入库和依赖: 确保GB28181相关的库和依赖被正确导入到你的Android项目中。支持的CPU架构包括armv7, arm64, x86, x86_64。 二、配置GB28181平台参数设置SIP服务器参数: 包括SIP服务器的地址、端口、用户凭证(如用户名和密码)等信息。这些信息通常需要在你的Android代码中硬编码或从配置文件读取。 创建SIP代理: 使用GB28181的SIP代理类(如GBSIPAgent)来管理SIP连接和信令。三、注册设备通过SIP协议注册设备: 使用SIP代理发送注册请求到SIP服务器。
对接 直接进行半柔性对接,刚性对接不感兴趣 使用指令: dock6 -i dock.in 创建文件dock.in 参数详解: http://dock.compbio.ucsf.edu/DOCK_6/tutorials
PTZCmd实现背景上一篇blog“Android平台GB28181设备接入模块之球机/云台控制探究”谈到,Android平台做国标GB28181设备接入端的时候,PTZ控制要不要处理? PTZ指令我们之前有提到过,如下图所示,Bit5和 Bit4不应同时为1,Bit3和 Bit2不应同时为1;Bit1和 Bit0不应同 时为1。镜头变倍指令、云台上下指令、云台左右指令三者可以组合。 DeviceControl</CmdType> <SN>204469675</SN> <DeviceID>34020000001380000001</DeviceID> <PTZCmd>A50F0110000010D5< /PTZCmd> <Info> <ControlPriority>5</ControlPriority> </Info></Control>由于PTZCmd无需发送应答命令,只需要回复200 总结国标平台侧通过PTZ指令,特别是针对Android的国标接入终端,实现摄像头的实时变焦,实际场景下,非常实用,特别是,如果Android平台国标设备接入端,对接有可以云台控制的RTSP摄像头,做PTZ
技术背景在写如何实现Android平台GB28181设备对接Camera2数据说明之前,我在前两年的blog就有针对camera2的RTMP直播推送模块做过技术分享:在Google 推出Android 本次更新,系在Android平台camera2 RTMP推送的基础上,继续支持Android平台GB28181设备和语音广播接入,此外,添加了基于层结构设计的动态水印(动态水印的场景应用特别实在传统行业 = null) { layer_post_thread_.stopPost(); layer_post_thread_ = null; }}实时录像、快照之类不再赘述,gb28181的,其实和 UDP":"TCP"); // GB28181配置 gb28181_agent_.config(gb28181_reg_expired_, gb28181_heartbeat_interval_, ret ) { destoryRTPReceiver(); btnGB28181AudioBroadcast.setText("GB28181语音广播
技术背景GB28181协议是一种用于设备状态信息报送的协议,可以在不同设备之间进行通信和数据传输。 在安卓系统上实现GB/T 28181非常必要,GB28181协议实现分两部分,一部分是信令,另外一部分就是媒体数据的编码。 需要注意的是,在Android平台上实现GB28181协议的接入时,需要考虑兼容性和性能问题。 好多开发者,希望知道我们的设计思路,以我们Android平台GB28181设备接入模块为例,我们的设计如下:图片技术实现GBSIPAgentListener主要系GB28181注册、心跳、DevicePosition 接口调用对应GB28181相关接口调用相关设计如下:/* * SmartPublisherJniV2.java * Author: https://daniusdk.com *//** * 设置GB28181
GB28181 定义了基于 SIP(会话初始协议)、SDP(会话描述协议)等协议的互联规范,安全注册、实时视音频点播等应用基于 SIP REGISTER、INVITE 等请求和响应方法。 需要说明一下,GB28181 设备或者平台一般不认域名,创建分机时需要单独配置一下域,一般取分机号码前 10 位即可。 进入【呼叫】⇨【路由】新建一条路由,其中被叫号码为前文提及的SIP 服务器 ID,如果对接的是平台,真正的主叫设备 ID 在INVITE头部Subject字段中,from 则为平台注册到 XSwitch , path, replaces Content-Type: Application/MANSCDP+xml Content-Length: 185 X-FS-Sending-Message: 63e5e877 'sip_profile', 'default') event:addHeader('dest_proto', 'sip') event:addBody(body) event:fire(); 对讲 GB28181
我们在对接Android平台GB28181接入的时候,有公司提出这样的需求,除了采集执法记录仪摄像头自带的数据外,还想通过执法记录仪采集外接UVC摄像头。 大牛直播SDK在2016年对接RTMP推送的时候,就有提供过YUV数据接口,供外部比如UVC Camera使用。 PIXEL_FORMAT_NV21 3 // one format of YUV420SemiPlanar#define PIXEL_FORMAT_RGB 4#define PIXEL_FORMAT_RGB565 5# 其他,GB28181的接口,本文就不再赘述了,之前已经提过多次,UVC Camera和执法记录仪自带的摄像头,就是数据源不同而已,其他信令交互和媒体传输并无差别。
GB28181对接本文以大牛直播SDK的Android平台GB28181设备接入模块为例,介绍下,如何实现和对接GB28181设备端。 ]支持YUV数据对接; [外部编码前音频数据对接]支持PCM对接; [外部编码后视频数据对接]支持外部H.264数据对接; [外部编码后音频数据对接]外部AAC数据对接; [扩展录像功能]支持和录像SDK SessionDescription var4); void ntsOnPlaybackInviteResponseException(long var1, String var3, int var4, String var5) SessionDescription var4); void ntsOnDownloadInviteResponseException(long var1, String var3, int var4, String var5) 同时,也会适应网络技术的发展,更好地支持 5G、IPv6 等新的网络环境,以满足大规模、高并发的视频传输需求。安全性增强:视频监控涉及到公共安全和个人隐私等重要信息,因此安全性将是未来发展的重点。
技术背景我们在对接SmartGBD(GB28181设备接入模块)的时候,处理常规的海康大华宇视等国标平台外,有些公司会选择wvp-gb28181-pro。 技术对接一切准备就绪,我们在大牛直播SDK的SmartGBD Android的demo上,设置下wvp-gb28181-pro的平台对接参数: /*** GB28181 相关参数,可以修改相关参数后测试 private int gb28181_rtp_payload_type_ = 96; private String gb28181_rtp_encoding_name_ = "PS";启动GB28181 CSeq: 613 INVITE From: <sip:41010500002000000001@4101050000>;tag=fbc9cccc34234fc3b4d78cb7035ca7a5 a1b37a6c55bf502c790df7ca66591942@192.168.0.106 CSeq: 622 MESSAGE From: <sip:41010500002000000001@4101050000>;tag=5adbe8c090fd40698b58c9d77795e5c2
我的项目已经升级到了5.x,在GitHub单独分支,不过没有修改什么代码,仅仅是升级了,但是这恰恰是证明了NETCore3.1是和NET5是无缝对接的,这也是我当时在升级3.1的时候,对2.2的小伙伴说的那句话 .Net Core的未来版本ASP.NetCore运行的运行时(称.Net5)被指定为与Java,Objective C和Swift等其他语言具有更高的互操作性,使得过渡到.Net5很容易。 版本的 其实如果运行.NET5,有两种方式,第一种是使用我们目前正在用的vs2019企业版,但是只能使用到.NET5的第七个预览版本(因为vs2019只能升级到16.7),如果想要尝试最新的第八版本, 看来net5真的要大一统了! ,可以看到是无缝的对接的,我们并没有做其他的多余的操作,当然,.Net5带来的好处这里并没有体现太多,比如c#9.0还没体现出来,你可以自己尝试尝试。
为什么要开发Android平台GB28181? GB28181设备对接图片1. 导入GB28181的相关库和依赖。系统要求SDK支持Android 5.1以上版本;支持的CPU架构:armv7, arm64, x86, x86_64。 配置SIP服务器:设定GB28181设备需要连接的SIP服务器地址、端口、用户凭证等信息。 this.device_id_ = device_id; return this; } }.set(deviceId),0); }5. 视频流传输:通过SIP协议实现GB28181设备之间的视频流传输,使用相关的音视频编解码技术将视频数据进行传输。
前言 今天主要对Android平台GB28181设备接入模块支持的接入数据类型,做个简单的汇总: 编码前数据(目前支持的有YV12/NV21/NV12/I420/RGB24/RGBA32/RGB565等数据类型 平台(比如其他IPC的RTSP流,可通过Android平台GB28181接入到国标平台)。 平台 这块我在之前的blog有专门提过,比如其他IPC的RTSP流,可通过Android平台GB28181接入到国标平台。 这里简单的说一下具体的实现,其实和之前我们做RTSP转RTMP推送一样,无非就是把RTSP或者RTMP流数据拉下来,然后回调编码后的数据到上层,上层根据GB28181数据格式要求,实现PS打包,然后通过对接 GB28181平台信令和数据交互,实时推过去即可。
技术背景 随着移动单兵、智能车载、智慧安防、智能家居、工业仿真、GB28281技术对接等行业的发展,现场已经不再限于采集到视频数据编码打包发送或对接到流媒体服务端,大多场景对视频水印的要求越来越高,从之前的固定位置静态文字水印 int text2_index_ = 3; private final int picture_index_ = 4; private final int rectangle_index_ = 5;
GB28181标准规定了公共安全视频监控联网系统(以下简称联网系统) 的互联结构, 传输、 交换、 控制的基本要求和安全性要求, 以及控制、 传输流程和协议接口等技术要求。 2、GB28181框架: SIP 监控域互联结构示意图如下图所示: GB28181的联网方式分为级联和互联方式,级联方式可以详细分为信令级联和媒体级联,下图分别为信令级联和媒体级联方式: 信令级联: 媒体级联 (5)媒体传输和媒体编解码协议 媒体流在联网系统IP 网络上传输时应支持 RTP 传输, 媒体流发送源端应支持控制媒体流发送峰值功能。 4、GB28181具体功能: GB28181协议规定支持的功能有如下几项: (1)注册和注销 应支持设备或系统进入联网系统时向SIP 服务器进行注册登记的工作模式。 相关参考: 1、http://t.csdnimg.cn/5MEvq 2、《GBT 28181-2016 公共安全视频监控联网系统信息传输、交换、控制技术要求》
就是下图中的弹出框,比如融合了5个非极性氢。 ? 但是,有时候,我们不手动添加电荷,按照上面的操作,有的小分子也会报错,怎么解决? 不需要,如果再计算Gasteiger电荷,本身原本就有部分电荷,最后对接的结合能是不一样的。只需要记住,如果设置为配体出错,再去计算Gasteiger电荷。
不可否定的是国家公安机关一直在强推这套协议,也有很多厂家积极响应号召,如我们的一个大客户中星电子,他们的平台就是纯基于GB28181协议实现的,在重点城市进行平安智慧城市的创建。 海康和大华虽然也有平安城市的平台,但是不是纯基于GB28181的,只是作为一个协议接入,毕竟他们自己的产品很多走的私有协议(市场决定这些因素),所以个人觉得往往是新兴的科技企业在没有利益的驱使下更愿意推行国家标准 下面来说下怎么去实现这个GB28181的协议栈功能。 GB28181协议已经慢慢的进行了规范完善,现在大的趋势也已经是这样,虽然以前有很多的私有协议平台,但新建的平安城市等政府都需要能支持GB28181的互联互通,GB28181协议还有互联功能,这个功能比
char* ssdp_search = "M-SEARCH * HTTP/1.1" "HOST: 239.255.255.250:1900" "MAN: \"ssdp:discover\"" "MX: 5" ssdp_search = "M-SEARCH * HTTP/1.1\r\n" "HOST: 239.255.255.250:1900\r\n" "MAN: \"ssdp:discover\"\r\n" "MX: 5\ 2、发现谁在发现 除了搜索设备,我们还需要知道谁往我们得服务地址发送了搜索地址得需求,因为我们是一个设备,其他在gb28181 服务中,我们需要知道sip 网守和网关得设备,可能有多个这种设备,我们则需要知道谁正需要发现设备 serviceList> <presentationURL>http://192.168.0.64:80</presentationURL> </device> </root> 从中可以发现很多信息 那么现在我们得GB28181
技术背景 我们在对接GB28181设备接入模块的时候,遇到这样的技术诉求,好多开发者期望能提供编码后(H.264/H.265、AAC/PCMA)数据对接,确保外部采集设备,比如无人机类似回调过来的数据 ,直接通过模块,对接到GB28181平台侧,此外,还期望不支持或者内网没有外部网络权限的RTSP设备,也能间接接入到国标平台。 技术实现 编码后音视频数据 本文以Android平台为例,基于上述诉求,我们设计的接口如下,简单来说,GB28181交互流程不变,只要提供数据接入接口即可: /** * 设置编码后视频数据(H int sample_rate, int channels); 拉取RTSP流接入到GB28181 平台 图片 简单那来说,把摄像机的RTSP流数据拉下来,然后回调编码后的数据到上层,上层根据GB28181数据格式要求,实现PS打包,然后通过对接GB28181平台信令和数据交互,国标平台侧需要预览的时候
对接的中心坐标并不一定非常准确,只要对接的盒子包含了配体可能结合的最大区域即可。 ? 我这里没有详细去查,所以选择全部包裹。通过调整后,蛋白已被全部包裹。 ? 这里看不见蛋白了。 设置对接参数 ? 接下来输出dpf文件。 ? 同样不能关闭这个窗口或点击Dismiss,这个过程会在工作目录产生一个相应的dlg格式文件,这个文件就是对接结果。 ? 在对接完成之后需要分析分子对接结果,也是做分子对接最重要的部分。 然后就显示了结果,但我们不是有10个对接结果吗,这里只显示一个。 ? ? 会弹出这么一个窗口 ? 然后按下图操作,显示对接信息。 ? 如果结合能小于-1.2kcal/mol或者小于-5kj/mol,那么我们认为对接结果是可行的,可以选择最低的。 到这里,对接就算结束了,后面是结果的可视化美化,如果有报错的情况,你可以阅读官方手册。
CarEye 开发GB28181 服务器有将近两年时间了,早期我们用纯C++开发了一个GB28181视频服务期,对外的接口是基于MQ协议的。这样开发出来的服务器主要有几个问题。 1. SIP服务器和流媒体服务器是绑定在一个进程中的,因为没有分离,造成了视频处理和SIP服务器只能在一台服务器上运行,既不能打到GB28181协议的构架要求。也造成无法使用负载均衡的功能。 2. 基于以上原因,我们重新架构了GB28181视频服务器,指令服务器使用go来作为开发,而流媒体开发继续使用C++作为开发语言。 新开发的GB28181服务器,和GT1078视频服务器通信构成了兼容移动车载,摄像头。集成直播,点播,对讲,上下级级联的流媒体服务群。 其网络架构如下图表示: 我们整理了有关GB28181的开发接口完全对外开放,方便快速应用。