Onvif工作整理总结(一)环境搭建

Onvif工作整理总结(一)环境搭建

  • Onvif工作整理
      • 环境搭建
      • 参考文档

Onvif工作整理

应公司需求需要搭建一个流媒体服务器,用于接收并转发IPC的rtsp码流,同时推rtmp码流到web端,使用户可以通过页面浏览。类似NVR的功能。这里先总结一下Onvif部分的工作以及遇到的问题。
服务器版本为ubuntu16.04 server。
gsoap版本为gsoap_2.8。

环境搭建

为了以后方便使用,我将自己使用的gsoap库源码安装包,onvif的两款很有用的调试工具ONVIF DEVICE MANAGE和 ONVIF DEVICE TEST TOOL 打包上传到了CSDN上,有需要的朋友也可以去下载,或者直接官网下载就可以;
CSDN下载地址:https://download.csdn.net/download/a2920729960/11177257

  1. 下载关联库:

sudo apt-get install bison flex openssl libssl-dev libgtk2.0-dev libglib2.0-dev

  1. 编译安装:

cd /home/ssm/onvif && unzip gsoap_2.8.68.zip
cd gsoap_2.8
sudo ./configure
sudo make
sudo make install

  1. 在线生成onvif.h文件:
    wsdl2h需要大量的wsdl文件去生成onvif.h,我直接写了个脚本去链接这些文件对应的网址,在wsdl2h所在文件夹,新建文件onvifh_build.sh
    文件内容:

#!/bin/sh
./wsdl2h -P -x -c -s -t typemap.dat -o onvif.h
http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl
http://www.onvif.org/onvif/ver10/events/wsdl/event.wsdl
http://www.onvif.org/onvif/ver10/display.wsdl
http://www.onvif.org/onvif/ver10/deviceio.wsdl
http://www.onvif.org/onvif/ver20/imaging/wsdl/imaging.wsdl
http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl
http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl
http://www.onvif.org/onvif/ver10/receiver.wsdl
http://www.onvif.org/onvif/ver10/recording.wsdl
http://www.onvif.org/onvif/ver10/search.wsdl
http://www.onvif.org/onvif/ver10/network/wsdl/remotediscovery.wsdl
http://www.onvif.org/onvif/ver10/replay.wsdl
http://www.onvif.org/onvif/ver20/analytics/wsdl/analytics.wsdl
http://www.onvif.org/onvif/ver10/analyticsdevice.wsdl
http://www.onvif.org/ver10/actionengine.wsdl
http://www.onvif.org/ver10/pacs/accesscontrol.wsdl
http://www.onvif.org/ver10/pacs/doorcontrol.wsdl
http://www.onvif.org/ver10/advancedsecurity/wsdl/advancedsecurity.wsdl
http://www.onvif.org/onvif/ver10/schema/onvif.xsd

运行该脚本就可以生成onvif.h文件:(因为是在线生成可能会因为网络导致失败,多来几次)

chmod +x onvifh_build.sh && ./onvifh_build.sh

成功后会有如下图提示:
Onvif工作整理总结(一)环境搭建_第1张图片
4.生成代码框架:
修改文件wsa5.h下SOAP_ENV__Fault为SOAP_ENV__Fault_alex;
在生成的onvif.h文件中添加 :#import “wsse.h”;

soapcpp2 -2 -c onvif.h -x -I /home/ssm/onvif/onvif gsoap/gsoap-2.8/gsoap/import -I /home/ssm/onvif/onvif gsoap/gsoap-2.8/gsoap -I /home/ssm/onvif/onvif gsoap/gsoap-2.8/gsoap/extras/ -I /home/ssm/onvif/onvif gsoap/gsoap-2.8/gsoap/custom/ -I /home/ssm/onvif/onvif gsoap/gsoap-2.8/gsoap/plugin/

编译结束后看到打印:Complilation successful 即编译成功了。

  1. 选择需要的文件:
    本人只开发客户端的程序因此没有使用服务端的文件。
    Onvif工作整理总结(一)环境搭建_第2张图片
    将以上文件放入项目中调用即可。

参考文档

  1. gsoap及onvif开发客户端框架的生成(一)
  2. Linux下gSoap编译Onvif框架详细图文教程

你可能感兴趣的:(onvif工作总结)