onvif协议框架搭建
来源:互联网 发布:数据分析工具有哪些 编辑:程序博客网 时间:2024/04/30 20:11
前言:
离职了,在准备上学还有一大段时间,前些日子由于工作需要,公司要求用海康的网络摄像头做出客户端程序,采集视频,并在LCD上显示出视频,故研究onvif协议,,现将心得写出。
开发环境:
本次搭建onvif框架采用的是周立功官网发布的Ubuntu 64位版本。版本为12.04.参考教程为许振坪的专栏。
名词的个人理解:
Onvif是一种全球通用的、开放的、标准的接口,使用这个接口来获取网络摄像头的各种参数或音视频流,服务端与客户端的数据交互采用SOAP协议,音视频流则采用RTP/RTSP进行,其接口是web services形式。
Gsoap工具将wsdl文档生成c或c++代码,从而生成webservice客户端。
Web services服务可以提供各种远程调用的接口函数。
网络摄像头:IPC
这样,如图1所示,我们就将采用gsoap工具来生成onvif的框架代码,自己只专注于客户端的应用开发,然后其中调用的函数通过gsoap工具生成的框架代码转变成web services形式,再发送给IPC。反过来,IPC发给客户端的数据是web service形式,通过框架直接转变为各种接口函数。这样大大较少中间过程的开发。
安装过程
在生成之前,需要安装下载前置软件(2017年8月21):注意安装顺序,gsoap需要在其他之后安装。
bison-3.0.4.tar.gz
flex-2.6.4.tar.gz
openssl-1.1.0f.tar.gz
gsoap_2.8.51.zip
使用命令解压并安装他们:
Bison:
tar -xvf bison-3.0.4.tar.gz
cd bison-3.0.4/
./configure
make
sudo make install
flex:
tar -xvf flex-2.6.4.tar.gz
cd flex-2.6.4/
./configure
make
sudo make install
openssl:
tar -xvf openssl-1.1.0f.tar.gz
cd openssl-1.1.0f/
./config --prefix=/opt/openssl--openssldir=/usr/local/ssl
make
make install
gsoap:
unzip gsoap_2.8.51.zip
cd gsoap-2.8
./configure --with-openssl=/opt/openssl
make
make install
安装gsoap工具成功后会有提示,如图2:
看看能否运行
wsdl2h -h
wsdl2h: error while loading sharedlibraries: libssl.so.1.0.0: cannot open shared object file: No such file ordirectory
提示找不到ssl的动态库,将动态库路径加上去
echo /opt/openssl/lib>>/etc/ld.so.conf
ldconfig
说明没问题了。
因为基本每个网络摄像头都需要输入用户名和密码,即认证。故需要调用soap_wsse_add_UsernameTokenDigest函数,所以,在onvif.h头文件中加入#import“wsse.h”
这里我直接给出许振坪的命令来生成框架:
mkdir -p samples/onvif
wsdl2h -P -x-c -s -t ./typemap.dat -o samples/onvif/onvif.hhttps://www.onvif.org/ver10/network/wsdl/remotediscovery.wsdlhttps://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdlhttps://www.onvif.org/ver10/media/wsdl/media.wsdl
soapcpp2 -2 -C mkdir -p samples/onvif -L -c-x -I import:custom -d samples/onvif/ samples/onvif/onvif.h
成功后提示如图4:
复制其他需要的源代码:
cp stdsoap2.c stdsoap2.h plugin/wsaapi.cplugin/wsaapi.h custom/duration.c custom/duration.h samples/onvif/
总结:
至此,框架已经搭建完成,剩下的就是应用程序的编写了,由于我当初只做到这一步,连c++都不会,应用程序完全是照搬许振坪的,故到此为止。
这是一篇记录onvif框架搭建的文章,并不适用与所有人。详细教程请移步许振坪的专栏。
所用到的源代码:
http://download.csdn.net/download/qq904305159/9945347
出现问题及解决办法:
出现no acceptable m4 could be found in $PATH
wget -O m4-1.4.9.tar.gzhttp://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
tar -zvxf m4-1.4.9.tar.gz
cd m4-1.4.9
./configure
make
make install
出现时钟错误:
1. 安装ntpdate工具
# sudo apt-get install ntpdate
2. 设置系统时间与网络时间同步
# ntpdate cn.pool.ntp.org
3. 将系统时间写入硬件时间
# hwclock –systohc
出现错误:
如图5:
修改import\wsa5.h文件,将int SOAP_ENV__Fault修改为int SOAP_ENV__Fault_alex,但是之前工作的时候虽然注意到了,但是并没有这个问题???版本问题??
- onvif协议框架搭建
- onvif备忘录(1)--onvif简介及开发框架搭建
- ONVIF学习-ONVIF开发框架搭建(C++)
- onvif简介及开发框架搭建
- onvif基础框架搭建与简单开发
- onvif协议
- onvif协议
- onvif协议开发:gsoap代码框架生成命令
- Onvif备忘录(1)----简介及开发框架搭建
- Onvif备忘录(1)----简介及开发框架搭建
- Onvif备忘录(1)----简介及开发框架搭建
- onvif协议学习笔记
- 简单了解ONVIF 协议
- 简单了解ONVIF 协议
- ONVIF 协议开发
- onvif协议简述
- ONVIF协议 简介
- onvif协议规范
- 【转】jar包和war包的介绍和区别
- 晚餐
- Hdu 6170 Two strings【思维+Dp】
- sso单点登录,HTTP跳转HTTPS登录后回跳HTTP
- 适配器模式
- onvif协议框架搭建
- javascript实现把指定元素移动到第一位
- service httpd does not support chkconfig的问题
- 关于接口调用相关
- java之transient
- 在北京的思考
- 解决 MySQL 与 Elasticsearch 数据不对称问题
- Android中实现延时执行操作的几种方法
- appium -python -webdriverwait思考等待时间