百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

从零开始精通Onvif之初识网络视频接口

yuyutoo 2024-12-06 20:38 2 浏览 0 评论

为什么要引入Onvif

进入21世纪后,随着宽带技术和其它相关科技的飞速发展,网络视频逐渐成为新兴行业。2004年左右,在网络视频技术日渐成熟和网络视频服务器产品竞争日趋激烈的情况下,主要厂商开始转向网络摄像机,也就是我们俗称的IPC,并逐步推出了各种型号的产品。到2008年时,从最开始的几个厂商,快速发展到成百上千的IPC的生产厂商。

早期的IPC厂商都采用私有协议,每个厂商生产的IPC使用的通讯协议都各不相同。随着视频监控的大规模应用,产业链的分工也越来越精细。有的厂商专门做摄像头,有的厂商专门做视频服务器,有的厂商则专门做平台,最后通过集成商进行集成,提供给最终的客户。私有协议无法胜任这种产业合作模式,于是,行业标准化的接口由此应运而生。

2008年5月,由安讯士(AXIS)联合博世(BOSCH)、索尼(SONY),三方宣布携手成立一个国际开放型网络视频产品标准网络接口开发论坛,取名为ONVIF(英文全称为Open Network Video Interface Forum,中文为开放型网络视频接口论坛),并以公开、开放的原则共同制定开放性行业标准。Onvif标准将为网络视频设备之间的信息交换定义通用协议,包括:设备发现、实时视频、音频、元数据和控制信息等。截止到2024年,已有几百家公司加入Onvif成为会员。

Onvif的核心在于定义了一系列的通信协议、数据模型和服务接口,确保了不同厂商的网络视频产品(比如:IPC、NVR、VMS等)能够无缝对接,共享视频流、控制信号和事件信息。这就好比给所有视频监控设备配备了一本“通用词典”,无论是设备发现、实时视频流传输,还是配置管理、事件通知,都遵循统一的标准进行。


Onvif技术架构

Onvif的技术架构旨在实现不同厂商的网络视频设备之间的互操作性,其关键组成部分有如下6个。

1、服务模型与接口定义。Onvif中的所有服务和接口均采用Web Services技术实现,遵循SOAP(Simple Object Access Protocol)协议,并使用WSDL(Web Services Description Language)来描述服务接口,确保了跨平台的互操作性。这意味着,无论底层操作系统或编程语言如何,只要支持Web服务栈,就能与Onvif设备进行通信。

2、设备管理。设备管理是Onvif技术架构的基础,它涉及设备的发现、描述、配置和状态查询。其主要任务是让客户端能够识别网络上的Onvif设备,并获取这些设备的详细功能信息。通过使用Web服务接口,客户端可以查询设备支持的服务、配置选项、网络设置、系统信息等,从而实现对设备的初始化配置和状态监测。

3、媒体服务。媒体服务是Onvif技术架构的核心部分之一,主要关注音视频流的传输、处理、控制。Onvif使用RTSP协议来建立和控制媒体会话,而实际的音视频流数据则通过RTP协议传输。此外,媒体服务还涵盖了录像存储、回放和检索等功能。

4、事件处理。事件处理使得设备能够主动向客户端报告发生的特定事件,比如:运动检测、视频丢失、设备状态改变等。事件处理机制基于订阅模型,客户端首先向设备订阅感兴趣的事件类型,然后设备会在事件触发时,通过SOAP消息发送给客户端。

5、云台控制。对于支持云台操作的摄像头,Onvif定义了一套PTZ控制服务,使得客户端可以远程控制摄像机的平移、俯仰、变焦等动作。通过标准化的PTZ命令集,用户可以精确地调整监控视角,提高监控的灵活性和效率。

6、安全性。Onvif技术框架内置了安全性考量,提供了认证、授权和加密机制,确保数据传输的安全。比如,使用HTTPS和TLS来保护Web服务调用,以及使用用户名/密码、证书等进行身份验证,从而确保了只有经过授权的客户端才能访问和控制设备。


Onvif技术规格

Onvif的技术规格是一套全面的标准和协议集合,旨在促进不同厂商的网络视频设备之间的互操作性。这些规格被组织成不同的配置文件(Profiles),每个配置文件针对特定的应用场景或功能集进行了标准化,确保了设备之间的兼容性和一致性。目前已经发布的Profile包括:Profile S、Profile C、Profile G、Profile A、Profile Q、Profile T、Profile M等。

Profile S:主要关注网络摄像机,是最早发布的配置文件之一。它涵盖了视频配置、实时视频流传输、事件处理、PTZ控制等功能,是大多数网络监控设备的基本要求。

Profile C:主要关注网络门禁控制系统,定义了门禁控制设备(比如:读卡器、控制器)与管理系统之间的通信协议,支持门禁事件、用户权限管理等功能。

Profile G:主要关注视频存储和回放,定义了如何从网络视频设备存储、检索视频数据到录像设备或系统中,它包括了对存储配置、视频检索、录像回放等操作的标准化。

Profile A:主要关注门禁系统设备的配置和管理,包括设备发现、配置、状态查询、事件处理等。

Profile Q:主要关注传输层安全性(TLS),确保Onvif设备在网络上的安全通信。

Profile T:主要关注高级视频流处理,引入了对H.264/H.265视频编码的支持,以及更精细的流配置选项,比如宽动态范围(WDR)、数字降噪等图像增强特性。

Profile M:主要关注元数据和事件处理,为网络摄像头和其他具备数据分析能力的设备与客户端(比如:视频管理软件VMS、云服务平台)之间,提供了标准化的元数据和事件传输方式。


Onvif接口规范

Onvif接口规范基于Web Services技术,使用SOAP协议进行服务端与客户端的数据交互。每个模块的接口都有相对应的WSDL文档进行描述,并提供了标准化的网络开放式接口,官网链接地址为:https://www.onvif.org/profiles/specifications/。以GetDeviceInformation接口为例,其描述可参考下图。


如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智”。

相关推荐

墨尔本一华裔男子与亚裔男子分别失踪数日 警方寻人

中新网5月15日电据澳洲新快网报道,据澳大利亚维州警察局网站消息,22岁的华裔男子邓跃(Yue‘Peter’Deng,音译)失踪已6天,维州警方于当地时间13日发布寻人通告,寻求公众协助寻找邓跃。华...

网络交友须谨慎!美国犹他州一男子因涉嫌杀害女网友被捕

伊森·洪克斯克(图源网络,侵删)据美国广播公司(ABC)25日报道,美国犹他州一名男子于24日因涉嫌谋杀被捕。警方表示,这名男子主动告知警局,称其杀害了一名在网络交友软件上认识的25岁女子。雷顿警...

一课译词:来龙去脉(来龙去脉 的意思解释)

Mountainranges[Photo/SIPA]“来龙去脉”,汉语成语,本指山脉的走势和去向,现比喻一件事的前因后果(causeandeffectofanevent),可以翻译为“i...

高考重要考点:range(range高考用法)

range可以用作动词,也可以用作名词,含义特别多,在阅读理解中出现的频率很高,还经常作为完形填空的选项,而且在作文中使用是非常好的高级词汇。...

C++20 Ranges:现代范围操作(现代c++白皮书)

1.引言:C++20Ranges库简介C++20引入的Ranges库是C++标准库的重要更新,旨在提供更现代化、表达力更强的方式来处理数据序列(范围,range)。Ranges库基于...

学习VBA,报表做到飞 第二章 数组 2.4 Filter函数

第二章数组2.4Filter函数Filter函数功能与autofilter函数类似,它对一个一维数组进行筛选,返回一个从0开始的数组。...

VBA学习笔记:数组:数组相关函数—Split,Join

Split拆分字符串函数,语法Split(expression,字符,Limit,compare),第1参数为必写,后面3个参数都是可选项。Expression为需要拆分的数据,“字符”就是以哪个字...

VBA如何自定义序列,学会这些方法,让你工作更轻松

No.1在Excel中,自定义序列是一种快速填表机制,如何有效地利用这个方法,可以大大增加工作效率。通常在操作工作表的时候,可能会输入一些很有序的序列,如果一一录入就显得十分笨拙。Excel给出了一种...

Excel VBA入门教程1.3 数组基础(vba数组详解)

1.3数组使用数组和对象时,也要声明,这里说下数组的声明:'确定范围的数组,可以存储b-a+1个数,a、b为整数Dim数组名称(aTob)As数据类型Dimarr...

远程网络调试工具百宝箱-MobaXterm

MobaXterm是一个功能强大的远程网络工具百宝箱,它将所有重要的远程网络工具(SSH、Telnet、X11、RDP、VNC、FTP、MOSH、Serial等)和Unix命令(bash、ls、cat...

AREX:携程新一代自动化回归测试工具的设计与实现

一、背景随着携程机票BU业务规模的不断提高,业务系统日趋复杂,各种问题和挑战也随之而来。对于研发测试团队,面临着各种效能困境,包括业务复杂度高、数据构造工作量大、回归测试全量回归、沟通成本高、测试用例...

Windows、Android、IOS、Web自动化工具选择策略

Windows平台中应用UI自动化测试解决方案AutoIT是开源工具,该工具识别windows的标准控件效果不错,但是当它遇到应用中非标准控件定义的UI元素时往往就无能为力了,这个时候选择silkte...

python自动化工具:pywinauto(python快速上手 自动化)

简介Pywinauto是完全由Python构建的一个模块,可以用于自动化Windows上的GUI应用程序。同时,它支持鼠标、键盘操作,在元素控件树较复杂的界面,可以辅助我们完成自动化操作。我在...

时下最火的 Airtest 如何测试手机 APP?

引言Airtest是网易出品的一款基于图像识别的自动化测试工具,主要应用在手机APP和游戏的测试。一旦使用了这个工具进行APP的自动化,你就会发现自动化测试原来是如此简单!!连接手机要进行...

【推荐】7个最强Appium替代工具,移动App自动化测试必备!

在移动应用开发日益火爆的今天,自动化测试成为了确保应用质量和用户体验的关键环节。Appium作为一款广泛应用的移动应用自动化测试工具,为测试人员所熟知。然而,在不同的测试场景和需求下,还有许多其他优...

取消回复欢迎 发表评论: