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: 基于代理 ...
随机推荐
- WPF 手机验证码 发送按钮倒计时 代码
private async void SendButton_Click(object sender, RoutedEventArgs e) { var button = sender as Butto ...
- 关于Datastage资料库的一点小发现
这里的资料库,指的是Datastage Metadata层,在Datastage7.5以后,需要在安装Datastage时安装一个数据库用于存放用户数据. 昨天领导要求安装Datastage集群/高可 ...
- Android 时间轴的实现
时间轴 时间轴,顾名思义就是将发生的事件按照时间顺序罗列起来,给用户带来一种更加直观的体验.京东和淘宝的物流顺序就是一个时间轴(如图),想必大家都不陌生. 时间轴的初探 初次见到这种UI,感觉整个布局 ...
- BS网站架构演变
BS网站架构演变 网站架构的整个演变过程主要是围绕大数据和高并发这两个问题展开的,解决的方案主要分为使用缓存和使用多资源两种类型.多资源主要指多存储(包括多内存).多CPU和多网络,对于多资源来说又可 ...
- The directory '/home/stone/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If execu
使用sudo pip install ......的时候出现下面一段黄色的代码: The directory '/home/stone/.cache/pip/http' or its parent d ...
- 利用 NGINX 最大化 Python 性能,第二部分:负载均衡和监控
[编者按]本文主要介绍 NGINX 的主要功能以及如何通过 Nginx 优化 Python 应用性能.本文系国内 ITOM 管理平台 OneAPM 编译呈现. 本文上一篇系: 利用 NGINX 最大化 ...
- [SQL Server]利用索引改善sql语句
很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: 1.select * from table1 where name=''z ...
- 转:.net设计模式之工厂模式
原文:http://terrylee.cnblogs.com/archive/2006/01/04/310716.html 概述 在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对 ...
- Error 'LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or cor
转自:http://blog.csdn.net/junjiehe/article/details/16888197 采用红字方法可行,后来采用cmake生成sln文件时,又出现了该问题,采用了玫红色字 ...
- javascript excel
js做的 excel , http://handsontable.com/ js keyCode对照表 http://dwz.cn/Lknbz