万物互联时代:ONVIF协议如何重构安防监控系统架构

前言
一、ONVIF协议是什么

ONVIF(Open Network Video Interface Forum,开放式网络视频接口论坛)是一种全球性的开放行业标准,由安讯士(AXIS)、博世(BOSCH)和索尼(SONY)于2008年共同发起,旨在解决不同品牌网络视频设备(如摄像头、录像设备等)的互通性问题。通过定义统一的接口和通信规范,ONVIF协议实现了设备发现、实时视频流传输、设备控制等功能,成为安防监控领域的主流标准。

核心作用与优势

  1. 互通性:打破厂商壁垒,支持跨品牌设备集成。
  2. 灵活性:用户可自由选择设备,构建定制化监控方案。
  3. 成本优化:降低系统集成复杂度,减少专有系统依赖。
  4. 技术创新:通过开放性标准推动行业技术迭代。

二、ONVIF规范的实现机制

ONVIF协议基于Web Service 架构,通过WSDL (Web服务描述语言)定义服务接口。什么?WSDL是什么?这都不知道,不会百度啊。

采用SOAP(简单对象访问协议)实现设备间通信。

WSDL(网络服务描述语言,Web Services Description Language)是一门基于 XML 的语言,用于描述 Web Services 以及如何对它们进行访问。
SOAP 是基于 XML 的简易协议,可使应用程序在 HTTP 之上进行信息交换。或者更简单地说:SOAP 是用于访问网络服务的协议。

其实现机制可分为以下关键模块:

  1. Web Service与SOAP

    ONVIF将设备功能抽象为Web服务,客户端通过HTTP发送SOAP请求调用服务。例如,获取设备信息的SOAP请求示例如下:

    xml 复制代码
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
       <soap:Body>
          <tds:GetDeviceInformation/>
       </soap:Body>
    </soap:Envelope>

    SOAP消息由Envelope、Header、Body和Fault四部分组成,基于XML格式,支持跨平台通信。

  2. WSDL描述文档

    WSDL是ONVIF的"接口说明书",以XML格式详细描述服务的位置、操作、参数及数据类型。例如,ONVIF的DeviceService接口通过WSDL定义设备管理操作(如GetServices)及其输入输出消息结构。

  3. 设备发现与交互流程

    ONVIF使用WS-Discovery协议实现设备自动发现。典型交互流程包括:

    • 设备上线后发送HELLO消息;
    • 客户端通过PROBE消息搜索设备;
    • 通过SOAP请求获取设备能力集和配置信息;
    • 基于RTSP协议拉取实时视频流。

工作方式

简单来讲,ONVIF协议将终端设备(摄像头等)提供Web Service服务,将每一个功能看做一个Web Service。

首先获取摄像头的主地址比如(http://10.0.0.47/onvif/device_service),我的摄像头的IP为10.0.0.47,获得这个地址后,我们就可以向这个地址提供的接口来获取相应的功能,每个接口可以认为一个功能,也就是一个Web Service


三、WSDL文档的核心组成

WSDL文件定义了ONVIF服务的交互规则,主要包含以下部分:

  1. Types:定义数据类型(如分辨率、编码格式),通过XML Schema导入。
  2. Message :描述请求与响应的数据结构(如GetServicesRequestGetServicesResponse)。
  3. Operation :服务支持的操作(如获取视频流URL的GetStreamUri)。
  4. Binding & Service:指定服务绑定方式(如HTTP传输)和访问地址。

示例:ONVIF设备服务的WSDL片段:

xml 复制代码
<definitions xmlns:tns="http://www.onvif.org/ver10/device/wsdl">
   <types>
      <xsd:import schemaLocation="onvif.xsd"/>
   </types>
   <message name="GetServicesRequest"/>
   <portType name="Device">
      <operation name="GetServices"/>
   </portType>
   <binding name="DeviceBinding" type="tns:Device">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
   </binding>
   <service name="DeviceService">
      <port binding="tns:DeviceBinding">
         <soap:address location="http://camera-ip/onvif/device_service"/>
      </port>
   </service>
</definitions>

四、构建SOAP消息的实践

构建SOAP消息需严格遵循WSDL定义的参数类型和命名空间。以设置H.265视频编码为例,Python代码示例如下:

python 复制代码
import requests
from requests.auth import HTTPDigestAuth

soap_message = """
<ns2:SetVideoEncoderConfiguration xmlns:ns2="http://www.onvif.org/ver10/media/wsdl">
   <ProfileToken>MediaProfile2</ProfileToken>
   <Configuration>
      <Name>H.265 Encoder</Name>
      <Encoding>H265</Encoding>
      <Resolution><Width>1920</Width><Height>1080</Height></Resolution>
   </Configuration>
</ns2:SetVideoEncoderConfiguration>
"""

response = requests.post(
    url="http://192.168.1.100/onvif/Media",
    auth=HTTPDigestAuth("admin", "password"),
    data=soap_message,
    headers={'Content-Type': 'application/soap+xml'}
)
print(response.content)

此示例通过zeep库解析WSDL生成客户端,并发送SOAP请求修改编码配置。


五、ONVIF的核心功能
  1. 设备管理:获取设备信息(型号、固件版本)、配置网络参数。
  2. 媒体控制:设置视频编码(如H.264/H.265)、分辨率、帧率。
  3. PTZ控制:远程操控云台(转动、变焦)。
  4. 事件处理:订阅运动检测、报警触发等实时事件。
  5. 视频分析:支持目标检测、行为分析等智能功能。

应用场景

  • 车载监控:360°全景环视系统通过ONVIF实现多摄像头统一管理,支持实时视频传输与盲区预警。
  • 智能安防:集成门禁、报警设备,构建多模块联动的安防平台。

六、总结

ONVIF协议通过标准化接口和开放的Web Service架构,解决了网络视频设备的碎片化问题。其核心在于WSDL定义的统一接口和SOAP实现的跨平台通信。开发者可借助工具(如gSOAP)快速生成代码,而终端用户则受益于灵活的集成方案与成本优化。随着物联网和智能安防的发展,ONVIF将持续推动行业生态的协同创新。

参考资料

  • ONVIF协议介绍 - 阿里云开发者社区

  • ONVIF规范的实现机制 - CuPlayer

  • ONVIF WSDL详解 - CSDN

相关推荐
chennalC#c.h.JA Ptho1 小时前
Centos系统详解架构详解
linux·经验分享·笔记·系统架构·系统安全
上海锝秉工控3 小时前
单圈精微,多圈无界——绝对值编码器如何重构工业定位的底层逻辑
重构
电报号dapp1194 小时前
DeFi开发系统软件开发:技术架构与生态重构
重构·架构·web3·去中心化·区块链·智能合约
蓝天居士11 小时前
软考 系统架构设计师系列知识点之杂项集萃(52)
系统架构
说私域1 天前
数字传播生态中开源链动模式与智能技术协同驱动的品牌认知重构研究——基于“开源链动2+1模式+AI智能名片+S2B2C商城小程序”的场景化传播实践
人工智能·小程序·重构·开源·零售
彬彬醤1 天前
全局网络:重构数字时代的连接范式
运维·服务器·网络·数据库·重构·代理模式
星川皆无恙2 天前
大数据产品销售数据分析:基于Python机器学习产品销售数据爬虫可视化分析预测系统设计与实现
大数据·运维·爬虫·python·机器学习·数据分析·系统架构
:-)2 天前
软考高级《系统架构设计师》知识点(十五)
系统架构
渣渣苏2 天前
软考-高级系统架构设计师
系统架构