Linux下onvi支持h265环境的的搭建:gsoap的安装及生产.c .h文件
1. 下载gsoap :http://www.genivia.com/products.html#notice,既Open Source gSOAP版本,并解压进入目录安装,configure后面的选项可以根据自己的需求添加,--prefix后面填写的gsoa安装所在的路径,我安装的是当前的路径,如果prefix出现安装错误,则需要把路径改成绝对路径。
- ./configure --enable-ipv6 --enable-debug --prefix=./
- make
- make install
2. gsoap虽然安装完成,但是你还要检查你的linux下是否也安装了以下内容,没有的话要安装一下,gsoap才能正常使用:
- .Bison或Yacc 安装:"https://www.gnu.org/software/bison/"
- Flex的安装:"https://github.com/westes/flex/releases"
- OpenSSL 的安装:"https://www.openssl.org/source/"
- 可选的Zlib支持:"http://www.zlib.net/"
3. 把gsoap-2.8/gsoap/typemap.dat也拷贝到一个新建工作目录下,并修改该文件的内容,在命名空间已经存在的trt下,新增支持h265的代码行 tr2 = http://www.onvif.org/ver20/media/wsdl ,tr2 可以自己随便命名,以后关于h265接口的都会以tr2名字出现。

4.生成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/onvif/ver10/schema/onvif.xsd 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/ver10/accessrules/wsdl/accessrules.wsdl http://www.onvif.org/ver10/credential/wsdl/credential.wsdl http://www.onvif.org/ver10/schedule/wsdl/schedule.wsdl)
- 可以根据项目功能结合所需要的wsdl网址来生成onvif.h,可以减小编译时间和减少整体框架大小: http://www.onvif.org/onvif/ver10/network/wsdl/remotediscovery.wsdl:用于发现设备http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl :用于获取设备参数http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl :用于获取视频流地址 https://www.onvif.org/ver20/media/wsdl/media.wsdl:用于获取h265视频流地址 http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl:用于设备的PTZ控制
- wsdl2h -o onvif.h -c -s -t typemap.dat http://www.onvif.org/onvif/ver10/network/wsdl/remotediscovery.wsdl http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl https://www.onvif.org/ver20/media/wsdl/media.wsdl http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl
离线生成:
- 离线生成的好处是可以生成gsoap框架后,根据所需要的功能去裁剪 *.wsdl及onvif.xsd 来减小整体框架的大小。首先结合项目功能下载相关的wsdl文件:https://www.onvif.org/profiles/specifications/,右击 *.wsdl,链接另存为即可保存成本地文件,也可以去上面在线生成wsdl网址右击查看源代码,另存为即可保存成wsdl文件。同时也要下载相关的 *.xsd文件。
- wsdl2h -o onvif.h -c -s -t typemap.dat -I gsoap-2.8/gsoap -I gsoap-2.8/gsoap/import/ remotediscovery.wsdl devicemgmt.wsdl media.wsdl media2.wsdl ptz.wsdl
- (media2.wsdl 是支持h265获取视频流地址:https://www.onvif.org/ver20/media/wsdl/media.wsdl)

5. 加入鉴权功能
- 在onvif.h的第100行加上 #import "wsse.h"
6. gsoap-2.8\gsoap\import路径下的wsa5.h中的SOAP_ENV__Fault结构体注释掉或改为其他名字,如SOAP_ENV__Fault_alex。
7.生成 *.c文件、*.h和命名空间*.nsmap:
- 将gsoap-2.8/gsoap/import/目录拷贝到当前工作目录
- soapcpp2 -c -x -I gsoap-2.8/gsoap -I ./import onvif.h
-C :仅生成客户端代码
-S:仅生成服务器端代码
-L:不要产生soapClientLib.c和soapServerLib.c文件
- c: 产生纯C代码,否则是C++代码
-I:指定import路径
-x:不要产生XML示例文件
8. 将gsoap-2.8\gsoap目录下的两个文件:stdsoap2.c、stdsoap2.h拷贝到你工作目录下
9. 注释stdsoap2.c如下代码:不注释的话会在编译运行的时候产生log日志,最后会发现磁盘已满的现象。
/*
#ifdef SOAP_DEBUG
#ifdef TANDEM_NONSTOP
soap_set_test_logfile(soap, "TESTLOG");
soap_set_sent_logfile(soap, "SENTLOG");
soap_set_recv_logfile(soap, "RECVLOG");
#else
soap_set_test_logfile(soap, "TEST.log");
soap_set_sent_logfile(soap, "SENT.log");
soap_set_recv_logfile(soap, "RECV.log");
#endif
#endif
*/
和修改
if (/*s == r || *r || */n < -128 || n > 127)
10. 接下来可以用生成好的框架来完成搜索设备、获取h265的rtsp地址及其其他相应的功能。
Linux下onvi支持h265环境的的搭建:gsoap的安装及生产.c .h文件的更多相关文章
- LibOpenCM3(一) Linux下命令行开发环境配置
目录 LibOpenCM3(一) Linux下命令行开发环境配置 本文使用 Linux 环境, 硬件为 STM32F103 系列开发板 LibOpenCM3 介绍 LibOpenCM3 是GPL协议( ...
- Linux下配置PHP开发环境
转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件 ...
- (转)Linux下设置和查看环境变量
原文地址:<Linux下设置和查看环境变量> Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1. 永久的:需要修改配置文件,变量永久生效. 2. 临时的:使用e ...
- Linux下设置和查看环境变量
Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1 永久的:需要修改配置文件,变量永久生效. 2 临时的:使用export命令声明即可,变量在关闭shell时失效. 设置变量 ...
- Linux下设置和查看环境变量(转)
Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1 永久的:需要修改配置文件,变量永久生效. 2 临时的:使用export命令声明即可,变量在关闭shell时失效. 设置变量 ...
- Windows10下配置Linux下C语言开发环境
今天为大家介绍如在Windows10下配置Linux下C语言开发环境,首先安装linux子系统:启用开发者模式 1.打开设置 2.点击更新和安全3.点击开发者选项 4.启用开发人员模式 5.更改系统功 ...
- Swing窗口Linux下不支持最大化问题
Swing窗口Linux下不支持最大化问题 摘自:https://www.linuxidc.com/Linux/2009-06/20519.htm [日期:2009-06-17] 来源:www.qua ...
- windows和linux下 Python2,Python3 的环境及安装
目录 windows和linux下 Python2,Python3 的环境及安装 window下安装 一. 手动安装 二. pip安装 linux下 安装 更新Python 笔者有话 windows和 ...
- 几款抓包工具在windows,mac,linux下的支持分析
抓包工具的使用 几款抓包工具在windows,mac,linux下的支持分析 抓包工具简介 Chrome/Firefox 开发者工具: 浏览器内置,方便易用 Fiddler/Charles: 基于代理 ...
随机推荐
- Spring Boot—19Cache
pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- WPF tooltip 根据父元素属性决定是否显示
例如:Placement为disable的时候,需要显示一段tooltip, 而当Placement为enable的时候,不显示 <Button Grid.Row="2" x ...
- Ubuntu VNC 打开spyder无法输入(检测不到键盘配置)解决方法
在ubuntu中安装好spyder后, 打开spyder发现无法输入. 在打开spyder的终端窗口,有如下提示: QXcbConnection: Failed to initialize XRand ...
- Keras & Theano 输出中间层结果
Keras & Theano get output of an intermediate layer 1.使用函数模型API,新建一个model,将输入和输出定义为原来的model的输入和想要 ...
- C++箱子排序
箱子排序 实现 把每个箱子用一个链表实现.在进行节点分配之前,每个箱子都是空的. 基本思想 1.从与排序链表的头部开始,逐个删除节点,并把它放到合适的箱子链表的头部 2.收集并连接每个箱子中的节点,产 ...
- Oracle Sequence Cache 参数说明
转自 http://blog.csdn.net/tianlesoftware/article/details/5995051 之前整理的一篇文章: ORACLE SEQUENCE 介绍 http:// ...
- JQuery 引用方式
# head里面 <script src="jquery.min.js"></script> <script src="common.js& ...
- winform listbox 使用DrawMode使用OwnerDrawVarialbe或OwnerDrawFixed无水平滚动条
因为需要使用DrawMode自行DrawItem,所以需要将DrawMode设置为OwnerDrawVarialbe或OwnerDrawFixed模式,代码如下: private void listB ...
- linux(centos7)下SVN服务器搭建手札
linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! ...
- leetcode 之 Degree of an Array
1.题目描述 Given a non-empty array of non-negative integers nums, the degree of this array is defined as ...