本文已参与「新人创作礼」活动,一起开启掘金创作之路。
onvif主页中文版:www.onvif.org/ch/
onvif Profiles协议:www.onvif.org/ch/profiles…
onvif网络接口规范:www.onvif.org/ch/profiles…
1、ONVIF
ONVIF的使命是为安防行业提供和促进标准化开放接口,以实现IP网络安防产品
有效的互操作性。
ONVIF的基础是:
- 网络安防产品的通信标准化
- 跨品牌的互操作性
- 对所有公司和组织的开放性
ONVIF由安讯士、博世安防和索尼于2008年创立,在全球六大洲拥有足够规模数量的会员基础,会员包括希望参与ONVIF活动的制造商、软件开发商、顾问公司、系统集成商、终端用户以及其他组织等。
ONVIF一致性产品和Profiles协议文件
目前ONVIF成员共同提供超过一万八千多种符合一致性要求的产品。同时市场上已经安装与使用了数百万个符合ONVIF标准协议的产品,这些产品必须支持以下Profiles协议中的至少一种:
- Profile A 广泛门禁控制协议标准
- Profile C 基础门禁控制协议标准
- Profile G 边缘存储/检索协议标准
- Profile Q 产品快速安装协议标准
- Profile S 视频流协议标准
- Profile T 高级视频流协议标准
ONVIF将继续与其成员一起,致力于扩大高互操作性的网络解决方案覆盖面。
与标准团队合作
ONVIF还与IEC(国际电工委员会)和CENLEC(欧洲电工标准化委员会)等全球标准组织合作,将ONVIF规范纳入它们的标准之中。ONVIF规范中均以Web Services的形式提供,通过诸如XML、SOAP和WSDL之类的开放标准来定义两个电子设备在IP网络上的通信。
ONVIF门禁控制规范已被报警与电子安防系统及部件要求标准(IEC60839-11)所采用。此标准包含对记录、识别和控制信息的要求,适用于安防电子门禁应用的控制系统及部件。
ONVIF规范曾于早年被纳入IEC发布的视频监控系统标准(IEC62676标准),该标准也是第一个针对视频监控系统的国际标准。IEC62676第2-3部分引用了基于Web服务的ONVIF视频规范,该规范定义了网络视频客户端和视频发送设备之间通信时需采用的视频传输协议。
2、Onvif Profiles
ONVIF profiles 可以轻松实现ONVIF规范的设备与客户端相互兼容。ONVIF profiles协议要求客户端和设备彼此必须支持一组功能,去确保支持Profile S的客户端与设备能确实彼此兼容。同时支持Profile S的客户端与设备中,一些特定的功能,也必须在双方同时被支持的前提下,才可以实现。ONVIF网络接口规范定义了ONVIF Profile协议文件的基本功能(包含特定功能)。
客户端和设备可以支持多个ONVIF profile协议; 例如,具有本地存储功能的网络摄像机可以同时符合Profile S和G协议。
符合profiles协议是确保符合ONVIF一致性的方法。因此,只有符合协议的认证产品才被视为符合ONVIF规范的产品。
Profiles A和C适用于门禁控制,Profiles G、Q、S与T适用于视频系统。
3、常用开源集成方案
一些资源链接:www.onvif.org/ch/resource…
此页面面向开发人员,并提供使用各种编程语言实现ONVIF接口的多个外部项目的链接。欢迎研究如何实现。请注意,ONVIF不是这些网站/链接的所有者,也不能提供任何相关支持。如果您对项目有疑问,请使用相应项目提供的讨论机制或平台。
适用于Android,Windows和iOS的ONVIF教程也可供查看。
C++
Qt based application for Android
C#
Java and Kotlin
Node.js
Library for accessing ONVIF Profile S and G devices
Scan for cameras and show information
ONVIF Profile T and S camera on Raspberry Pi hardware
Objective C and Swift
Simple App for iOS streaming from Profile T cameras.
PHP
Integration of ONVIF features into web app.
Python
Access ONVIF interfaces from scripts.
Visual Basic
Windows scripting tools for accessing ONVIF devices.
4、协议学习
初期的学习了解是基于这里的专栏,博主也是开发针对IPC的Onvif客户端,使用了一些成熟方案实现了Onvif客户端,主要是使用c/c++,我们主要从这里学习onvif协议的一些概念理解。