Onvif学习
创始人
2024-04-20 14:53:27
0

ONVIF

onvif(Open Network Video Interface Forum,开放型网络视频接口论坛)协议.

onvif协议涵盖了设备发现、设备配置、事件、PTZ控制、视频分析和实时流媒体直播功能,以及搜索,回放和录像录音管理功能。

先去看许振坪大佬的文章:
ONVIF协议网络摄像机(IPC)客户端程序开发(1):专栏开篇

如果你也是看完第六章,继续往下看也不知其意的话,我这篇文章应该会对你有所帮助。

说明
Profile AProfile A 用于电子准入控制系统,用于高级门禁控制配置
Profile A 设备能进行信息检索(状态、事件)、实体配置如准入规则、证书、schedules(计划)等配置。
Profile A 客户端则可以通过网络使用Profile A 设备的上述功能。
Profile CProfile C 用于电子准入控制系统,用于物理门禁控制配置
Profile C 标准的设备和客户端适合于site information(站点信息), door access control(门禁控制), and event and alarm management(事件、报警管理)场景
Profile DProfile D是一款专门针对访问控制外设接口。
Profile D开发的目的是希望用ONVIF标准为外围设备,例如锁、资格/生物识别器、密码键盘、车牌识别摄像头、电话门禁、传感器和显示器等,提供互操作性。
Profile D 对之前发布的Profile A和Profile C的功能进行了补充,实现了IP电子访问控制系统内部的标准化通讯。
Profile GProfile G 同样也是为基于IP的视频系统设计,用于录制和存储
Profile G 设备可以保存视频录像文件,Profile G 客户端可以通过网络配置、请求、控制 Profile G 设备录像数据的功能。
Profile G 还包括接收音频和metadata流的规范。
Profile QProfile Q 提供了设备发现、基本配置功能的标准。用于简易安装与高级安防功能
Profile Q 设备(network camera, network switch, network monitor)能够被Profile Q 客户端通过网络快速发现、配置、控制。
Profile Q 标准支持TLS交互方式。
Profile SProfile S 主要为基于IP的视频系统设计
Profile S 设备(如IPC、视频编码器),一般用于传输视频流给 Profile S 客户端(如IVMS)。
Profile S 客户端具有通过网络配置、请求、控制 Profile S 设备视频流的功能。
Profile S 框架囊括 PTZ control(云台控制)、audio in(音频输入)、多播、转播的规范。
Profile TProfile T 同样也是为基于IP的视频系统设计
Profile T 设备支持H.264 and H.265 编码格式,成像设置, 报警事件,如运动和篡改检测。
Profile T设备的强制规定包括onscreen display and metadata streaming(屏幕显示和元数据流)。
Profile T客户端的强制规定包括PTZ控制。
Profile T 还包括HTTPS streaming, PTZ configuration, motion region configuration, digital inputs and relay outputs, and bidirectional audio for conformant devices and clients规范。
注: 官方强调,Profile T规范不是对Profile S规范的取代,而是针对不同应用领域的扩展,当然两个标准也可以合并使用。

Onvif官网接口:https://www.onvif.org/profiles/specifications/

我们写的系统都是需要围绕 Profile 来进行编程的,因为一个设备至少要实现一个Profile的功能。每一个Profile都有一些必须实现的功能,所以呢他就有了一个 Requirement Levels 来标记我们必须要实现的一些功能,Requirement Levels在每一个Profile Specification文档中都有定义。

  • Mandatory(M):ONVIF设备或ONVIF客户端应实现的功能。
  • Conditional(C):如果支持该功能,则应由ONVIF设备或ONVIF客户端实现的函数。
  • Optional(O):可以由ONVIF设备或ONVIF客户端实现的功能。

看以下Profile A Specification中截的图:

在这里插入图片描述

由此可见,我们让我们的系统支持Profile A那么,就必须实现MANDATORY标记的模块中的Requirment为M的函数,Device是服务端,Client是客户端。

我们先看一下下面的关系图

在这里插入图片描述

文中原图链接:https://wenku.baidu.com/view/a2ba36327fd5360cba1adb5a.html

看完这些之后呢,相信你一定会有所收获,建议去下载《ONVIF2.0协议珍藏版》看,里面全中文。

ONVIF常用接口:https://www.onvif.org/onvif/ver20/util/operationIndex.html

windows 系统使用gSOAP生成onvif C++框架

WINDOWS下编译支持SSL/TLS的WSDL2H

OpenSSL下载地址:http://slproweb.com/products/Win32OpenSSL.html

OpenSSL选1.1.1的,3.0的版本编译无法通过。

WINDOWS下编译支持SSL/TLS的WSDL2H:https://www.freesion.com/article/82981316621/

gSOAP生成onvif C++框架

https://blog.csdn.net/weixin_44517656/article/details/115120199

使用

VS中使用OpenSSL,添加 C/C++ 预处理器

WITH_DOM
WITH_OPENSSL

记得引入OpenSSL头和库的目录,链接OpenSSL。这样就可以参考许振坪大佬的文章去敲代码啦。

相关内容

热门资讯

【MySQL】锁 锁 文章目录锁全局锁表级锁表锁元数据锁(MDL)意向锁AUTO-INC锁...
【内网安全】 隧道搭建穿透上线... 文章目录内网穿透-Ngrok-入门-上线1、服务端配置:2、客户端连接服务端ÿ...
GCN的几种模型复现笔记 引言 本篇笔记紧接上文,主要是上一篇看写了快2w字,再去接入代码感觉有点...
数据分页展示逻辑 import java.util.Arrays;import java.util.List;impo...
Redis为什么选择单线程?R... 目录专栏导读一、Redis版本迭代二、Redis4.0之前为什么一直采用单线程?三、R...
【已解决】ERROR: Cou... 正确指令: pip install pyyaml
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
Lock 接口解读 前置知识点Synchronized synchronized 是 Java 中的关键字,...
Win7 专业版安装中文包、汉... 参考资料:http://www.metsky.com/archives/350.htm...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
大模型未来趋势 大模型是人工智能领域的重要发展趋势之一,未来有着广阔的应用前景和发展空间。以下是大模型未来的趋势和展...
python实战应用讲解-【n... 目录 如何在Python中计算残余的平方和 方法1:使用其Base公式 方法2:使用statsmod...
学习u-boot 需要了解的m... 一、常用函数 1. origin 函数 origin 函数的返回值就是变量来源。使用格式如下...
常用python爬虫库介绍与简... 通用 urllib -网络库(stdlib)。 requests -网络库。 grab – 网络库&...
药品批准文号查询|药融云-中国... 药品批文是国家食品药品监督管理局(NMPA)对药品的审评和批准的证明文件...
【2023-03-22】SRS... 【2023-03-22】SRS推流搭配FFmpeg实现目标检测 说明: 外侧测试使用SRS播放器测...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
初级算法-哈希表 主要记录算法和数据结构学习笔记,新的一年更上一层楼! 初级算法-哈希表...
进程间通信【Linux】 1. 进程间通信 1.1 什么是进程间通信 在 Linux 系统中,进程间通信...
【Docker】P3 Dock... Docker数据卷、宿主机与挂载数据卷的概念及作用挂载宿主机配置数据卷挂载操作示例一个容器挂载多个目...