Onvif对接Rtsp实时媒体流(基于live555)


Onvif(Open Network Video Interface Forum,开放型网络视频接口论坛),是安迅士联合博世及索尼公司共同成立的一个国际开放型网络视频产品标准网络接口开发论坛,以公开、开放的原则共同制定的开放型行业标准。

Onvif标准网络视频设备之间的信息交换定义通用协议,包括实时视频、音频、元数据和控制信息等。网络视频产品由此所能提供的多种可能性,使终端用户,集成商,顾问和生产厂商能够轻松地从中获益,并获得高性价比、更灵活的解决方案、市场扩张的机会以及更低的风险。

gSOAP一种跨平台的C C++软件开发工具包。生成C/C++RPC代码,XML数据绑定,对SOAP Web服务和其他应用形成高效的具体架构解析器。

WSDL(网络服务描述语言)是一个用来描述Web服务和说明如何与Web服务通信的XML语言。

 

本软件是用gSOAP实现了onvif中定义的设备发现和Webservice服务。在使用gSOAP时首先是根据wsdl文件生成相应的头文件,然后根据头文件里申明的功能函数,在源文件中实现这些功能函数。


1生成onvif依赖文件

下载gSOAP
http://www.cs.fsu.edu/~engelen/soap.html
当前使用的是2.8.14版本。解压后,在bin目录中有需要的两个工具wsdl2h这个工具根据wsdl文件生成一个头文件,这个头文件中申明了很多功能函数,通过实现这些功能函数或者自定义函数来实现onvif功能。
生成onvif头文件
wsdl2h –o onvif.h –c –s –t ./typemap.dat
http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl
http://www.onvif.org/onvif/ver10/event/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
 
生成框架
soapcpp2-2 onvif.h -x -I./gsoap-2.8/gsoap/import -I./gsoap-2.8/gsoap
将wsdd.nsmap改名为wsdd.h,删除其它所有nsmap文件,它们的内容是一样的,删除soapClientLib.c,soapServerLib.c这两个文件。
从gsoap里拷贝所需文件到当前目录,这些文件包括dom.c、soapC.c、stdsoap2.c、md5evp.c、smdevp.c、mecevp.c、threads.c、wsaapi.c、wsseapi.c、duration.c
在生成框架时,2.8.14版本的gSOAP会报错,只需要注释掉./third-party/gsoap-2.8/gsoap/import/wsa5.h 278行函数的申明即可。
 
生成源文件

在上面生成的onvif.h里申明了很多函数,需要在源文件中实现这些函数。



2 ONVIF

目录及概述


1)global_init:初始化网络、内存、onvif服务、webserver及相关全局变量
2)webserver_thread: 解析soap协议并提供相应web服务
3)hello_thread: 以一定的时间间隔发送“HELLO”消息
4)probe_thread:是用来应答客户端发送的“Probe“消息
 
设备发现功能
过程描述:
1)       Onvif设备在启动后,组播“HELLO”消息,告知设备已经上线。
2)       onvif客户端监听组播消息,当收到“HELLO”消息后,单播“PROBE”消息到onvif设备端。
3)       设备端收到“PROBE”消息后检查消息中设备类型字段是否匹配,如果匹配则单播“PROBEMATCH”消息到客户
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值