最近工作需要用到onvif协议,整理一下编译过程遇到的问题:
编译工具是: gsoap, 版本gsoap-2.8.50; 可在官网下载;
WSDL文件: 下载地址:https://www.onvif.org/profiles/specifications/
编译命令:
第一步生成 onvif.h 文件:
wsdl2h -o onvif.h -t ./typemap.dat remotediscovery.wsdl devicemgmt.wsdl analytics.wsdl analyticsdevice.wsdl media.wsdl deviceio.wsdl display.wsdl event.wsdl imaging.wsdl recording.wsdl replay.wsdl search.wsdl receiver.wsdl ptz.wsdl media2.wsdl
其中remotediscovery.wsdl是关于设备搜索的,但是官网主页上面没有找到,非常奇怪,我是通过别人博客找到的==;
remotediscovery.wsdl :用于发现设备
devicemgmt.wsdl :用于获取设备参数
media.wsdl:用于获取视频流地址
ptz.wsdl:用于设备的PTZ控制
需要修改的地方(坑很多,所以要改):
- 后续编译源代码需要用到 duration.c 文件,但是会遇到类型LONG64报错的问题;
需要 生成头文件时,在 typemap.dat 文件中重新生