技术背景在写如何实现Android平台GB28181设备对接Camera2数据说明之前,我在前两年的blog就有针对camera2的RTMP直播推送模块做过技术分享:在Google 推出Android 5.0的时候, Android Camera API 版本升级到了API2(android.hardware.camera2), 之前使用的API1(android.hardware.camera)就被标为 Camera API2相较于API1有很大不同, 并且API2是为了配合HAL3进行使用的, API2有很多API1不支持的特性, 比如:更先进的API架构;可以获取更多的帧(预览/拍照)信息以及手动控制每一帧的参数 本次更新,系在Android平台camera2 RTMP推送的基础上,继续支持Android平台GB28181设备和语音广播接入,此外,添加了基于层结构设计的动态水印(动态水印的场景应用特别实在传统行业 crop_rect.top / 2) * planes[2].getRowStride() + (crop_rect.left / 2) * planes[2].getPixelStride();
好多开发者希望我们不是从代码级,而是从流程方面,大概介绍下Android端GB28181设备接入段模块。本文以SmartGBD的Camera2Demo为例,大概聊下相关的集成流程。 以下是一个详细的集成指南:一、准备工作导入库和依赖: 确保GB28181相关的库和依赖被正确导入到你的Android项目中。支持的CPU架构包括armv7, arm64, x86, x86_64。 将必要的Java文件(如SmartPublisherJniV2.java和SmartPlayerJniV2.java)放置在正确的包名下。 二、配置GB28181平台参数设置SIP服务器参数: 包括SIP服务器的地址、端口、用户凭证(如用户名和密码)等信息。这些信息通常需要在你的Android代码中硬编码或从配置文件读取。 创建SIP代理: 使用GB28181的SIP代理类(如GBSIPAgent)来管理SIP连接和信令。三、注册设备通过SIP协议注册设备: 使用SIP代理发送注册请求到SIP服务器。
PTZCmd实现背景上一篇blog“Android平台GB28181设备接入模块之球机/云台控制探究”谈到,Android平台做国标GB28181设备接入端的时候,PTZ控制要不要处理? PTZ指令我们之前有提到过,如下图所示,Bit5和 Bit4不应同时为1,Bit3和 Bit2不应同时为1;Bit1和 Bit0不应同 时为1。镜头变倍指令、云台上下指令、云台左右指令三者可以组合。 图片技术实现细节GB28181的云台控制命令,对Android平台设备接入端来说,难度不大,只需要把相应的云台控制命令字段回调到上层,上层做个解析,然后进行相应的命令控制即可。 // Zoom In int zoom_speed = getZoomSpeed(combination_code2) 总结国标平台侧通过PTZ指令,特别是针对Android的国标接入终端,实现摄像头的实时变焦,实际场景下,非常实用,特别是,如果Android平台国标设备接入端,对接有可以云台控制的RTSP摄像头,做PTZ
技术背景GB28181协议是一种用于设备状态信息报送的协议,可以在不同设备之间进行通信和数据传输。 需要注意的是,在Android平台上实现GB28181协议的接入时,需要考虑兼容性和性能问题。 好多开发者,希望知道我们的设计思路,以我们Android平台GB28181设备接入模块为例,我们的设计如下:图片技术实现GBSIPAgentListener主要系GB28181注册、心跳、DevicePosition java)相关接口设计,如无语音广播或语音对讲相关技术需求,这部分可忽略:/* * SmartPlayerJniV2.java * Author: https://daniusdk.com *//* * 接口调用对应GB28181相关接口调用相关设计如下:/* * SmartPublisherJniV2.java * Author: https://daniusdk.com *//** * 设置GB28181
GB28181 定义了基于 SIP(会话初始协议)、SDP(会话描述协议)等协议的互联规范,安全注册、实时视音频点播等应用基于 SIP REGISTER、INVITE 等请求和响应方法。 需要说明一下,GB28181 设备或者平台一般不认域名,创建分机时需要单独配置一下域,一般取分机号码前 10 位即可。 进入【呼叫】⇨【路由】新建一条路由,其中被叫号码为前文提及的SIP 服务器 ID,如果对接的是平台,真正的主叫设备 ID 在INVITE头部Subject字段中,from 则为平台注册到 XSwitch 'sip_profile', 'default') event:addHeader('dest_proto', 'sip') event:addBody(body) event:fire(); 对讲 GB28181 3000 unmute all 其中:id1对应广播成员,id2对应点播成员。
我们在对接Android平台GB28181接入的时候,有公司提出这样的需求,除了采集执法记录仪摄像头自带的数据外,还想通过执法记录仪采集外接UVC摄像头。 大牛直播SDK在2016年对接RTMP推送的时候,就有提供过YUV数据接口,供外部比如UVC Camera使用。 stride * * @return {0} if successful */ public native int SmartPublisherOnCaptureVideoI420DataV2( PIXEL_FORMAT_RAW 0 // same as PIXEL_FORMAT_YUV#define PIXEL_FORMAT_YUV 1#define PIXEL_FORMAT_NV12 2 其他,GB28181的接口,本文就不再赘述了,之前已经提过多次,UVC Camera和执法记录仪自带的摄像头,就是数据源不同而已,其他信令交互和媒体传输并无差别。
GB28181对接本文以大牛直播SDK的Android平台GB28181设备接入模块为例,介绍下,如何实现和对接GB28181设备端。 ]支持YUV数据对接; [外部编码前音频数据对接]支持PCM对接; [外部编码后视频数据对接]支持外部H.264数据对接; [外部编码后音频数据对接]外部AAC数据对接; [扩展录像功能]支持和录像SDK 集成示例以Android平台Camera2对接为例,信令部分需要实现如下标红接口:/* * MainActivity.java * Author: daniusdk.com * WeChat: xinsheng120 java,如需语音广播或语音对讲,可参照SmartPlayerJniV2.java。 接口调用对应GB28181相关接口调用相关设计如下:/* * SmartPublisherJniV2.java * Author: https://daniusdk.com * WeChat: xinsheng120
技术背景我们在对接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 null); if ( gb28181_agent_.start() ) { btnGB28181Agent.setText("停止GB28181 CSeq: 622 MESSAGE From: <sip:41010500002000000001@4101050000>;tag=5adbe8c090fd40698b58c9d77795e5c2
为什么要开发Android平台GB28181? GB28181设备对接图片1. 导入GB28181的相关库和依赖。系统要求SDK支持Android 5.1以上版本;支持的CPU架构:armv7, arm64, x86, x86_64。 准备工作确保SmartPublisherJniV2.java放到com.daniulive.smartpublisher包名下(可在其他包名下调用);如需集成语音广播、语音对讲功能,确保SmartPlayerJniV2 配置SIP服务器:设定GB28181设备需要连接的SIP服务器地址、端口、用户凭证等信息。 2:0, media_info_.is_has_video_track()?
两蛋白间的分子对接—21 与Chatgpt之间的对话需要进行的是SFN和HDAC6两蛋白分子的对接,思路是Uniprot数据库中检索SFN与HDAC6蛋白质,挑选分别率最佳的构象。 使用HDOCK进行分子对接,挑选最佳对接结果导入PYMOL进行可视化。 这是我上一篇分子对接帖子的实现思路,但是是有问题的,在 选择构象的时候,未关注到结构的完整性,在分子对接前需要对分子进行处理,如去除多余配体,水分子等,再进行分子对接 。 以下记录和chatgpt的对话:2 优化后的分析流程具体看最后一条与chatgpt之间的对话现在的分析流程是下载AF-Q9UBN7-F1、AF-P31947-F1的PDB文件,不需要去除水分子和多余配体 使用HDOCK进行分子对接,HDAC6结构为受体,SFN为配体。
平台(比如其他IPC的RTSP流,可通过Android平台GB28181接入到国标平台)。 : /* * SmartPublisherJniV2.java * SmartPublisherJniV2 * * WebSite: https://daniusdk.com * Github 平台 这块我在之前的blog有专门提过,比如其他IPC的RTSP流,可通过Android平台GB28181接入到国标平台。 这里简单的说一下具体的实现,其实和之前我们做RTSP转RTMP推送一样,无非就是把RTSP或者RTMP流数据拉下来,然后回调编码后的数据到上层,上层根据GB28181数据格式要求,实现PS打包,然后通过对接 GB28181平台信令和数据交互,实时推过去即可。
技术背景 随着移动单兵、智能车载、智慧安防、智能家居、工业仿真、GB28281技术对接等行业的发展,现场已经不再限于采集到视频数据编码打包发送或对接到流媒体服务端,大多场景对视频水印的要求越来越高,从之前的固定位置静态文字水印 ), 2); scale_h = align((int)(h * 1.5 + 0.5), 2); } if(scale_w >0 && scale_h >0) { scale_filter_mode 2); } if(! 2); } } if(! is_posted_text2) { postText2Layer(text2_index_); is_posted_text2 = true;
GB28181标准规定了公共安全视频监控联网系统(以下简称联网系统) 的互联结构, 传输、 交换、 控制的基本要求和安全性要求, 以及控制、 传输流程和协议接口等技术要求。 2、GB28181框架: SIP 监控域互联结构示意图如下图所示: GB28181的联网方式分为级联和互联方式,级联方式可以详细分为信令级联和媒体级联,下图分别为信令级联和媒体级联方式: 信令级联: 媒体级联 4、GB28181具体功能: GB28181协议规定支持的功能有如下几项: (1)注册和注销 应支持设备或系统进入联网系统时向SIP 服务器进行注册登记的工作模式。 (2)实时视音频点播 应支持按照指定设备、 指定通道进行图像的实时点播, 支持多用户对同一图像资源的同时点播。 其中, 信令1、8、9、10、11、12 为SIP 服务器接收到客户端的呼叫请求后通过 B2BUA 代理方式建立媒体流接收者与媒体服务器之间的媒体流信令过程, 信令2 ~ 7 为SIP 服务器通过三方呼叫控制建立媒体服务器与媒体流发送者之间的媒体流信令过程
Yolov8对接DCNV2简介在计算机视觉领域中,目标检测是一项重要的任务。 希望本文能够对Yolov8和DCNV2的对接有所帮助,如果你对目标检测和语义分割感兴趣,不妨尝试将它们结合起来,开创更多的研究和应用空间。 示例代码:车辆检测与道路分割下面是一个示例代码,展示了Yolov8对接DCNV2的实际应用场景,即车辆检测与道路分割。 import Yolov8 # Yolov8模型定义from dcnv2 import DCNV2 # DCNV2模型定义# 加载预训练的Yolov8模型和DCNV2模型yolov8_model = imread('test_image.jpg')image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)# 图像预处理和调整大小image = cv2.resize(
接前文:分子对接教程 | (1) 软件安装准备 关于蛋白质结构的PDB文件,做分子对接,估计大家都知道PDB这个蛋白质数据库啦。这里简单的介绍一下。 有的还是多条肽链的复合物,如果是二聚体的,后面对接可以删除一个。总之,需要先了解这些所解析的晶体结构是否已经包含了拟对接分子的潜在结合位点,已知的配体和我们要对接的分子结构相似度。 比专业级的PyMOL(https://pymol.org/2/)。这个软件已经被世界上著名的生物医药软件公司“薛定谔公司(Schrödinger)”收购。 最后,这些都是在蛋白结构已知的蛋白分子对接,如果我们要对接的蛋白,没有晶体结构,在PDB中是检索不到的,在UniProt 中的Structure是不会显示的。 如果要对接的蛋白没有结构,我们又要对接,那就只能是自己通过软件预测了。蛋白质结构预测的方法有从头计算法,同源建模法,穿线法和综合法。
译文出自:登链翻译计划[1] 译者:翻译小组[2] 校对:Tiny 熊[3] 在上一篇文章中,我们通过 大概 100 行代码,了解了 Uniswap 的运行原理。 core dotenv 2. 使用下面的代码: //address of the uniswap v2 router address private constant UNISWAP_V2_ROUTER = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D getAmountsOut函数需要一个输入金额和一个代币地址的路径数组: uint256[] memory amountsExpected = IUniswapV2Router(UNISWAP_V2_ROUTER uint256[] memory amountsReceived = IUniswapV2Router(UNISWAP_V2_ROUTER).swapExactTokensForTokens(
不可否定的是国家公安机关一直在强推这套协议,也有很多厂家积极响应号召,如我们的一个大客户中星电子,他们的平台就是纯基于GB28181协议实现的,在重点城市进行平安智慧城市的创建。 海康和大华虽然也有平安城市的平台,但是不是纯基于GB28181的,只是作为一个协议接入,毕竟他们自己的产品很多走的私有协议(市场决定这些因素),所以个人觉得往往是新兴的科技企业在没有利益的驱使下更愿意推行国家标准 下面来说下怎么去实现这个GB28181的协议栈功能。 GB28181协议已经慢慢的进行了规范完善,现在大的趋势也已经是这样,虽然以前有很多的私有协议平台,但新建的平安城市等政府都需要能支持GB28181的互联互通,GB28181协议还有互联功能,这个功能比
2、发现谁在发现 除了搜索设备,我们还需要知道谁往我们得服务地址发送了搜索地址得需求,因为我们是一个设备,其他在gb28181 服务中,我们需要知道sip 网守和网关得设备,可能有多个这种设备,我们则需要知道谁正需要发现设备 ,我们写出以下代码: #include <stdio.h> #include <winsock2.h> #include <ws2tcpip.h> #pragma comment(lib, "ws2 _32.lib") int main_2() { int iRet = 0; WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), &wsaData); SOCKET serviceList> <presentationURL>http://192.168.0.64:80</presentationURL> </device> </root> 从中可以发现很多信息 那么现在我们得GB28181
技术背景 我们在对接GB28181设备接入模块的时候,遇到这样的技术诉求,好多开发者期望能提供编码后(H.264/H.265、AAC/PCMA)数据对接,确保外部采集设备,比如无人机类似回调过来的数据 ,直接通过模块,对接到GB28181平台侧,此外,还期望不支持或者内网没有外部网络权限的RTSP设备,也能间接接入到国标平台。 * * @return {0} if successful */ public native int SmartPublisherPostVideoEncodedDataV2( * * @return {0} if successful */ public native int SmartPublisherPostAudioEncodedDataV2( 平台 图片 简单那来说,把摄像机的RTSP流数据拉下来,然后回调编码后的数据到上层,上层根据GB28181数据格式要求,实现PS打包,然后通过对接GB28181平台信令和数据交互,国标平台侧需要预览的时候
对接的中心坐标并不一定非常准确,只要对接的盒子包含了配体可能结合的最大区域即可。 ? 我这里没有详细去查,所以选择全部包裹。通过调整后,蛋白已被全部包裹。 ? 这里看不见蛋白了。 设置搜索参数和算法,在最后一个弹出框中,第一个选项,Number of GA Runs表示我们对接多少次,这里默认0次,官方建议对接50次以上,这里演示就设置10次。 设置对接参数 ? 接下来输出dpf文件。 ? 同样不能关闭这个窗口或点击Dismiss,这个过程会在工作目录产生一个相应的dlg格式文件,这个文件就是对接结果。 ? 在对接完成之后需要分析分子对接结果,也是做分子对接最重要的部分。 然后就显示了结果,但我们不是有10个对接结果吗,这里只显示一个。 ? ? 会弹出这么一个窗口 ? 然后按下图操作,显示对接信息。 ?