【Android音视频】Onvif-IPC开发(一)——gSoap-onvif移植NDK

Android端实现Onvif IPC开发:

【Android音视频】Onvif-IPC开发(一)——gSoap-onvif移植到Android》
【Android音视频】Onvif-IPC开发(二)——JAVA版本onvif服务器构建Onvif-IP-Camera
【Android音视频】Onvif IPC开发(三)——YUV格式深入浅出
[【Android音视频】Onvif IPC开发(四)——Onvif移植Android架构与补全方案(更新中…) ]

阅读说明(必读)

改动,在我2018年12月1日前,博客一直没跟新这条,前面又说onvif ndk移植失败,不过我后面又调通了,相比于java版本,用java实现显得有点生硬,且容易漏下一些协议内容,导致识别或者控制上的问题,最稳妥的还是用gosap生成的onvif server端去处理协议

移植NDK最主要的问题是生成的OnvifServer工程太大,而关键便在于如何缩小工程量,这边文章整个配置是没有问题的,在环境搭建第5步,根据wsdl生成onvif.h时,需要相应的裁切。我会专门写一篇文章来介绍如何做

本文详解,在android端通过java搭建的server去模拟IPC,达到需求(实现Android端可供Onvif检测的IPC),以下是我移植的步骤及碰到的问题,你可以尝试阅读或者直接跳转到《Android端实现Onvif IPC开发(二)——在Android端搭建服务器模拟Onvif IP Camera》,以下问题留待有时间会继续解决,尽请关注后续文章,如果你已经有解决办法请务必指点一下,不甚感激 ####

一、本篇项目简介
  • 大家都知道Onvif在安防领域占有牢牢领先的地位,ONVIF标准为网络视频设备之间的信息交换定义通用协议,包括装置搜寻、实时视频、音频、元数据和控制信息等,Onvif在现实中的应用,大多是嵌入式开发中使用。于是我在想,能否降Onvif协议集成到Android设备上呢,并且打包成SDK,这样的话也许很有趣,让我们来动手吧!
  • Onvif协议的内容:
    • ONVIF规范中设备管理和控制部分所定义的接口均以Web Services的形式提供。ONVIF规范涵盖了完全的XML及WSDL的定义。每一个支持ONVIF规范的终端设备均须提供与功能相应的Web Service。服务端与客户端的数据交互采用SOAP协议
    • 音视频流则通过RTP/RTSP进行
  • Onvif协议模板的生成可以通过gSoap去自动生成,SOAP协议是基于XML的,需要通过他生成的.c和.h去集成到我们的项目中
  • 了解一些基本概念:
    • xml:可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言
    • http:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议
    • soap:简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息
    • WS-discovery:你在预先不知道目标服务的情况下,可以动态的探测可用的服务并调用
    • wsdl:网络服务描述语言是Web Service的描述语言,它包含一系列描述某个web service的定义。这里可以通俗的理解为协议定义。
二、环境搭建
  1. 我的开发环境是Ubuntu 16.04 LTS 内存 8G I5 4核

  2. gSoap下载地址:http://www.cs.fsu.edu/~engelen/soap.html,我下载的版本是2.8.66

  3. 下载好解压到工程目录ipc_project

     $:./configure
     $:make
     $:make install
     安装完成后执行:wsdl2h或者soapcpp2查看gSOAP是否已经安装成功
     然后需要安装以下基本库:
     	sudu apt install libssl-dev
     	sudo apt-get install cmake
     	sudo apt-get install build-essential
     	sudo apt-get install libgtk2.0-dev liblib2.0-dev
     	sudo apt-get install checkinstall 
    
     将wsa5.h的SOAP_ENV__Fault改名,因为其它地方也存在这个结构体,随意改,不冲突即可
     修改typemap.dat,在
     wstop     = "http://docs.oasis-open.org/wsn/t-1"
     后面加:
     #     WS-Discovery 1.0 remapping
     wsdd10__HelloType          = | wsdd__HelloType
     wsdd10__ByeType               = | wsdd__ByeType
     wsdd10__ProbeType          = | wsdd__ProbeType
     w
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值