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: 基于代理 ...
随机推荐
- Material适配1 - 入门篇
版权声明: 欢迎转载,但请保留文章原始出处 作者:GavinCT 出处:http://www.cnblogs.com/ct2011/p/4493384.html 随着Material Design的普 ...
- redis sortedSet
zset 和set 相比: zset 类型和set类型一样,不允许有重复的元素.zset是有序的,zset 有一个double类型的分数,这个分数可以重复,zset正是通过这个分数对集合中的元素从小到 ...
- 实验二:klee处理未建模函数和处理error的方式
首先,能够分析klee源码固然重要.但是目前尚未到那个地步.我按照我的过程,记录和分析我所做的实验. 结论性内容是: 1.klee处理printf传入符号值的情形时,报为error,不会将符号值具体化 ...
- leetCode题解之求二叉树每层的平均值
1.题目描述 Given a non-empty binary tree, return the average value of the nodes on each level in the for ...
- poj2182 逆推暴力
题意 告诉有n头牛,每头牛有一个编号1~n,再一次烂醉之后,奶牛们没有按照编号排队:告诉你对于第i头奶牛,在它之前有多少头奶牛比它的编号小(i>1,因为第1头奶牛的数据永远为0,故题中省略),求 ...
- Falsk的模板分配和蓝图、定制错误信息、 和补充
Flask的模板渲染: Flask的模板在进行渲染的时候是默认选则templates下的html文件 我们可以在实例化app的时候,指定文件来进行选择: 模板渲染更改文件夹:template_fold ...
- 裸机恢复 (BMR) 和系统状态恢复
DPM 将系统保护数据源视为两个组成部分 – 裸机恢复 (BMR) 和系统状态保护. BMR 涉及保护操作系统文件和重要卷上的所有数据,用户数据除外. 系统状态保护涉及保护操作系统文件. DPM 使用 ...
- Mysql源码安装shell脚本
#!/bin/bash#date:2019/1/20#by author zhangjia#install mysql#shell_name:mysql_auto_install.sh######## ...
- 铁乐学Python_day05-字典dict
1.[字典dict] Python内置了字典:dict的支持,dict全称dictionary, 在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 字典和列表直观上 ...
- November 10th 2016 Week 46th Thursday
Live like you were dying, love because you do. 生如将逝,爱自本心. When faced with our darkest hour, hope is ...