ONVIF ##### * 官网: https://www.onvif.org 命名空间 ======== * 总: https://www.onvif.org/profiles/specifications/ * 发现服务(dn): https://www.onvif.org/ver10/network/wsdl/ * 设备服务(tds): https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl * 媒体服务(trt): https://www.onvif.org/ver20/media/wsdl/media.wsdl * 成像服务(timg): http://www.onvif.org/ver20/imaging/wsdl * 事件服务(tev): https://www.onvif.org/ver10/events/wsdl/event.wsdl * PTZ控制服务(tptz): https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl * 分析服务(tan): http://www.onvif.org/ver20/analytics/wsdl * 错误的名字空间(ter): http://www.onvif.org/ver10/error 开源项目 ======== * https://github.com/RadhiFadlillah/go-onvif * https://github.com/yakovlevdmv/goonvif * ✅: https://github.com/use-go/onvif * python版(OpenMMLab Image and Video Restoration, Editing and Generation Toolbox): https://github.com/open-mmlab/mmediting ONVIF 技术规格 ============== Profile A --------- * 用于门禁控制配置 * Profile A 适用于电子门禁系统中使用的产品。Profile A 符合设备的设备可以检索信息,状态和事件,以及配置访问规则,凭证和时间表等实体。 * Profile A 符合要求的客户端可以提供访问规则,凭证和时间表的配置。客户端还可以检索和接收标准化的门禁访问控制相关事件。 :: 授予 / 撤消凭证 创建时间表 分配访问规则 * 「常见的例行门禁控制功能」的技术规范,适用于负责授予和撤销员工凭证、创建和更新计划表,以及对系统内门禁控制权限进行更改的安保人员、接待员或人力资源专员等用户 Profile C --------- * 用于门控和事件管理 * Profile C 适用于电子门禁系统中使用的产品。 * Profile C 符合设备和客户端支持站点信息,门禁控制以及事件和报警管理。 :: 站点信息和配置 事件和报警管理 门禁控制 Profile D --------- * 用于访问控制外设 * Profile D 适用于外围设备的输入界面,例如令牌读取器(用于读取卡,钥匙,移动电话或条形码),生物识别读取器(用于指纹识别),相机(用于虹膜,面部或车牌识别),按键,传感器(用于识别锁状态,门状态,温度或动作)和部分输出设备(例如锁,显示器和 LED)。 * Profile D 的外围设备可以捕获输入的凭据标识,并将其传送至安全范围内符合 Profile D 规范的客户端上,例如访问控制单元或管理软件。用于存储访问控制规则、时间表以及身份认证的客户端可以做出访问决定,并将命令发送回外围设备以授予或拒绝访问权限,也可以选择使其显示信息或要求输入更多信息(例如 PIN 码)。 * Profile D 规范可以使合规客户端通过必要数据(例如该设备负责哪个门或访问点)来配置一致性设备,以及在支持此功能的设备中配置具有允许或阻止凭据标识符的列表。 * ONVIF Profile D 与 Profile A 和 Profile C 搭配一起使用可以实现在基于 IP 的电子访问控制系统中的标准化通信。支持 Profile D 的设备,例如可以通过继电器连接到 Lock 接口的 IP 相机,同时还可以支持其他 ONVIF 配置文件,比如 Profile M 和 Profile T,以使用 ONVIF 接口来集成视频和访问控制系统。 :: 1. 传输凭证标识和访问请求 2. 执行锁定 / 解锁等操作 Profile G --------- * 用于存储和检索 * Profile G 专为基于 IP 的视频系统而设计。 Profile G 设备(例如,IP 网络摄像机或视频编码器)是可以通过 IP 网络或设备本身记录视频数据的设备。Profile G 客户端(例如,视频管理软件)是可以配置,请求和控制来自 Profile G 符合 设备的 IP 网络上的视频数据的记录的软件。如果客户端支持这些功能,Profile G 还包括对接收音频和元数据流的支持。 :: 配置,请求和控制录制 接收音频和元数据流 Profile M --------- * 用于分析类应用程序的元数据和事件 :: 用于元数据的分析配置和信息查询 用于元数据配置和流式传输 通用对象分类支持 用于地理位置、车辆、车牌、人脸和人体的元数据定义 用于对象计数、人脸和车牌识别分析,以及通过 MQTT 以 JSON 格式发送 ONVIF 事件的事件处理接口 事件规则配置 * ONVIF Profile M 支持元数据的分析配置和信息查询,以及元数据的过滤和流式传输。它具有用于通用对象分类的接口以及用于指定元数据(如地理位置,车辆,车牌,人脸和人体等)的接口。如果合规产品本身可支持对媒体配置文件管理、视频流、在元数据流中添加图像、事件处理或规则配置等功能,则它们也同样可支持用于这些事件的 Profile M 接口。如果合规产品支持对象统计(比如说,人或是车辆)、车牌识别或面部识别的分析功能,以及物联网系统使用的 MQTT(消息队列遥测传输)协议, Profile M 事件处理接口也同样可以用于这些功能。 * Profile M 的合规产品可以是边缘设备(如 IP 摄像机或基于视频的无人机)或是可以使用 Profile M 接口通过 IP 网络向客户端发送元数据的服务(包括用于设备的基于边缘的分析应用)。Profile M 的合规客户端可以是视频管理软件 (VMS) 程序、网络视频录像机 (NVR) 或服务器或基于云的服务,合规设备需要能够使用 Profile M 接口来配置、请求和控制来自 Profile M 边界设备或服务的 IP 网络上的元数据流。支持 MQTT 的 Profile M 设备或客户端也可以与物联网平台 / 应用进行通信,从而完成与物联网设备和应用的通信。 Profile S --------- * 用于基本视频流 * Profile S 专为基于 IP 的视频系统而设计。 Profile S 设备(例如,IP 网络摄像机或视频编码器)是可以通过 IP 网络将视频数据发送到 Profile S 客户端的设备。 Profile S 客户端(例如,视频管理软件)是可以从 Profile S 设备配置,请求和控制 IP 网络上的视频流的设备。 Profile S 还涵盖了用于 PTZ 控制,音频输入,多播和继电器输出的 ONVIF 规范,适用于符合此类功能的设备和客户端。 Profile T --------- * 适用于高级视频流 * Profile T 专为基于 IP 的视频系统而设计。 Profile T 支持视频流功能,例如使用 H.264 和 H.265 编码格式,成像设置以及诸如运动和篡改检测之类的警报事件。设备的强制功能还包括屏幕显示和元数据流,而客户端的强制功能还包括 PTZ 控制。 Profile T 还涵盖了用于 HTTPS 流,PTZ 配置,运动区配置,数字输入和继电器输出的 ONVIF 规范,以及支持此类功能的符合设备和客户端的双向音频。 :: H.264 / H.265 视频压缩 成像设置 运动警报和篡改事件 元数据流 双向音频 .. note:: 注意:Profile T 不能替代 Profile S 兩個规范都有自己的应用领域,可以组合使用。 收集 ==== 设备管理服务命名空间前缀列表:: tds:设备管理服务 (Device Management Service) trt:媒体服务 (Media Service) tptz:云台服务 (PTZ Service) tep:事件服务 (Event Service) timg:图像服务 (Imaging Service) trc:录像服务 (Recording Control Service) trv:录像检索服务 (Recording Search Service) tse:设备元数据服务 (Device IO Service) tmd:设备元数据服务 (Device Metadata Service) tan:网络服务 (Advanced Networking Service) tcap:访问控制服务 (Access Control Service) timg:图像设置服务 (Imaging Settings Service) "tev" 事件服务 (Event Service) wsnt:Web Services 通知 (Web Services Notification) wsntw:Web Services 通知订阅 (Web Services Notification Subscription) .. warning: 需要注意的是,在不同的 ONVIF 版本中,命名空间前缀的使用情况可能会有所不同。因此,在具体使用时,需要查看相应的 ONVIF 标准文档和 XML 架构文件,以确定所使用的命名空间前缀。 ONVIF 大致流程:: 发现设备 获取能力 获取媒体信息 获取视频编码配置 设置视频编码配置(修改视频流设置信息,码流,分辨率,编码格式) 获取 URI ONVIF 完成 使用 RTSP 协议播放音视频 设备类型 -------- * NVT (Network Video Transmitter): 网络视频服务器 (比如,网络摄像机,编码设备等),通过 IP 网络发送媒体数据到客户端。 * NVD (Network Video Display): 网络视频接收器 (比如,网络视频显示器),通过 IP 网络,从 NVT 等设备获取媒体数据。 * NVS (Network video Storage): 通过 IP 网络,记录从媒体设备 (比如 NVT) 获得的媒体数据或者元数据到永久存储介质中。也能够在客户端回放存储数据 * NVA (Network video Analytics): 分析从媒体设备 (比如 NVT) 中或存储设备 (比如 NVS) 中获得的数据的设备。 设备发现 -------- * 3702 端口通常会被 ONVIF 设备管理服务(Device Management Service)和媒体服务(Media Service)等多个服务共同使用,以提供设备管理、视频流传输等功能。因此,如果要访问一个支持 ONVIF 协议的设备,通常需要先通过 3702 端口进行搜索和发现,然后再使用设备提供的其他服务进行访问和控制。 一个典型的 ProbeMatch 消息:: onvif://www.onvif.org/location/country/china onvif://www.onvif.org/name/MyCamera http://192.168.1.100/onvif/device_service ... ./Body/ProbeMatches/ProbeMatch/XAddrs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * 一个 ONVIF 设备发现响应消息中的一个元素,用于指示设备服务的访问地址。 * 具体来说,该元素是一个 XML 格式的节点,包含了一个或多个 URL 地址,用于访问设备的不同服务。 * 上面例子中 http://192.168.1.100/onvif/device_service,表示可以通过这个地址访问设备的设备管理服务。 ./Body/ProbeMatches/ProbeMatch/Scopes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * 一个 ONVIF 设备发现响应消息中的一个元素,用于指示设备服务的范围。 * 具体来说,该元素是一个 XML 格式的节点,包含了一个或多个字符串,用于描述设备服务所在的范围。 * 上例中,Scopes 元素包含了两个字符串,分别是 onvif://www.onvif.org/location/country/china 和 onvif://www.onvif.org/name/MyCamera * 用于描述设备服务所在的范围。 * 具体来说,第一个字符串表示设备所在的国家是中国,第二个字符串表示设备的名称是 MyCamera * 这些字符串的具体含义和格式由 ONVIF 协议定义。 ONVIF 接口规范 ============== ONVIF 接口被划分为不同模块,包括:: 1. 设备发现 2. 设备管理 3. 设备输入输出服务 4. 图像配置 5. 媒体配置 6. 实时流媒体 7. 接收端配置 8. 显示服务 9. 事件处理 a. PTZ 控制 * ONVIF 的作用是定义和维护网络视频设备(如摄像头、录像机、视频管理软件等)之间的通信协议和接口标准,从而实现不同厂商的设备之间的互联互通。 * ONVIF标准化了网络视频设备之间的通信协议和接口,提高了设备之间的兼容性,降低了企业和个人的设备成本。使用ONVIF标准的设备可以通过标准接口与其他设备进行通信,使得设备的管理和配置变得更加简单和方便。ONVIF还提供了一些高级功能,如视频分析和事件管理,这些功能可以跨设备和厂商进行集成。 * ONVIF标准定义了一系列的接口和协议,使得不同厂商的网络视频设备可以彼此通信和交互,进一步降低设备的管理和配置成本,提高设备之间的兼容性和互操作性。 Example ======= :: onvif://www.onvif.org/hardware/D1