ONVIF简介
ONVIF规范描述了网络视频的模型、接口、数据类型以及数据交互的模式。并复用了一些现有的标准,如WS系列标准等。ONVIF规范的目标是实现一个网络视频框架协议,使不同厂商所生产的网络视频产品(包括摄录前端、录像设备等)完全互通。
ONVIF规范中设备管理和控制部分所定义的接口均以Web Service的形式提供。ONVIF规范涵盖了完全的XML及WSDL的定义。每一个支持ONVIF规范的终端设备均须提供与功能相应的Web Service。服务端与客户端的数据交互采用SOAP协议。ONVIF中的其他部分比如音视频流则通过RTP/RTSP进行。
使用gSOAP生成ONVIF开发框架(C++)
下载gSOAP
从gSoap官网下载gSoap(笔者用的是gSoap_2.8.45)。gSoap有两个版本:commercial edition 和 open source edition。下载open source edition即可。
在Linux下重新编译gSoap源码
由于2017年3月底ONVIF官网进行了一次改版,改版后WSDL的URL地址变成HTTPS,而gSoap官方编译好的Windows版本的wsdl2h.exe默认是禁止SSL/TLS的,不支持HTTPS下载WSDL文件,所以需要自己重新编译gSoap源码,使其开启SSL/TLS。
安装必要程序
编译gSoap前安装Bison、Flex和OpenSSL。安装OpenSSL时记得将.so文件路径/usr/local/ssl/lib追加到/etc/ld.so.conf文件末尾,否则后面编译会出错。
编译源码
编译源码命令如下:
$ cd gsoap-2.8
$ ./configure --with-openssl=/usr/local/ssl