美文网首页
onvif-开发

onvif-开发

作者: 爱自在 | 来源:发表于2019-09-29 15:29 被阅读0次

    1. 说明

    onvif开发的资料比较多,可以根据需要来选择。本文侧重从头开始且偏实际操作,实现从生成代码,到实现发现设备,其他功能后续实现。

    如果想直接调试,可以从GITHUB上获取一些代码直接使用。

    如果从头开始可以参考这篇文章:
    ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)

    如果要系统学习,可以参考(这是一个系列):
    ONVIF协议网络摄像机(IPC)客户端程序开发

    ONVIF:Open Network Video Interface Forum 开放型网络视频接口论坛 相当于大家都按照这个标准来实现指定的接口
    WSDL: Web Services Description Language 网络服务描述语言 用于描述 Web Services 以及如何对它们进行访问

    也就是说摄像头实现了onvif协议,我们可以通过网络调用onvif的接口函数从而实现一些功能。比如发现摄像头设备,从而获取摄像头音视频流地址等等服务,

    设备发现是使用约定的组播地址:239.255.255.250:3702,在实际应用中,可能要注意组播路由的设置。尤其是linux系统。

    2. 生成代码

    生成代码使用soap工具

    1.1 下载soap工具

    gsoap_2.8.92

    1.2 修改代码

    gsoap/import/ wsa5.h
    将277行int SOAP_ENV__Fault修改为int SOAP_ENV__Fault_alex

    1.3 编译

    ./configure 
    make 
    make install
    
    可能出现问题 stdsoap2.h:695: fatal error: openssl/bio.h:

    解决:
    sudo apt-get install openssl
    为了安装OpenSSL通常的库文件,首先使用以下命令来确定在Ubuntu系统中可获得的库文件的应用版本:
    sudo apt-cache search libssl | grep SSL
    sudo apt-get install libssl-dev

    1.4 产生 C 代码框架,包含客户端和服务器代码

    wsdl2h -o onvif.h -c -s -t ./typemap.dat http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl http://www.onvif.org/onvif/ver10/event/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/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
    

    在onvif.h中添加 import "wsse.h" 添加对openssl的支持,实现鉴权

    soapcpp2 -c onvif.h -x -I../gsoap-2.8/gsoap/import -I../gsoap-2.8/gsoap/ -I../gsoap-2.8/gsoap/custom -I../gsoap-2.8/gsoap/extras
    

    以上代码完成代码生成,可以基于生成的代码进行下一步开发

    3 设备发现

    相关文章

      网友评论

          本文标题:onvif-开发

          本文链接:https://www.haomeiwen.com/subject/pmmjuctx.html