onvif协议基于soap协议实现,定义了大量的wsdl。

可以在网址查看:

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/ver20/analytics/wsdl/analytics.wsdl  
http://www.onvif.org/onvif/ver10/analyticsdevice.wsdl  
http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl

http://www.onvif.org/onvif/ver20/media/wsdl/media.wsdl
http://www.onvif.org/onvif/ver10/deviceio.wsdl  
http://www.onvif.org/onvif/ver10/display.wsdl  
http://www.onvif.org/onvif/ver10/event/wsdl/event.wsdl  
http://www.onvif.org/onvif/ver20/imaging/wsdl/imaging.wsdl  
http://www.onvif.org/onvif/ver10/recording.wsdl  
http://www.onvif.org/onvif/ver10/replay.wsdl  
http://www.onvif.org/onvif/ver10/search.wsdl  
http://www.onvif.org/onvif/ver10/receiver.wsdl  
http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl

具体查看文档见onvif协议 连接如下:

onvif协议文档

wcf是微软开发的一系列通信框架,其中支持soap协议。在理论上是的实现onvif协议可以通过wcf实现。

通过接近一天的专研,成功实现了用wcf实现了onvif客户端。

第一步:添加服务引用

第二步就可以直接调用wcf实现了

设置onvif服务地址:

EndpointAddress serviceAddress = new EndpointAddress(string.Format("http://{0}:{1}/onvif/device_service", ip, port));

设置传输方式,这里设置为soap1.2版本,传输方式为http协议

 HttpTransportBindingElement httpBinding = new HttpTransportBindingElement();httpBinding.AuthenticationScheme = AuthenticationSchemes.Digest;httpBinding.KeepAliveEnabled = false;
 var messageElement = new TextMessageEncodingBindingElement();messageElement.MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None);CustomBinding bind = new CustomBinding(messageElement, httpBinding);

最后设置绑定

DeviceClient deviceClient = new DeviceClient(bind, serviceAddress);

调用类实现接口

var ttt= deviceClient.GetSystemDateAndTime();

查看成功失败可以通过wireshark抓包

为了便于大家学些,上传demo如下:开发环境为vs2017

基于wcf的onvif客户端demo

onvif协议之初探相关推荐

  1. Atitit onvif协议获取rtsp地址播放java语言 attilx总结

    Atitit onvif协议获取rtsp地址播放java语言 attilx总结 1.1. 获取rtsp地址的算法与流程1 1.2. Onvif摄像头的发现,ws的发现机制,使用xcf类库1 2. 调用 ...

  2. 使用ONVIF协议控制海康威视球机

    运行前应检测摄像头是否开启onvif协议,并添加添加用户 import time import zeep import requests from onvif import ONVIFCamera f ...

  3. tps协议和onvif协议_做监控的你,应该了解的ONVIF协议!

    原标题:做监控的你,应该了解的ONVIF协议! 做网络监控时间长了,听到的最多的就是协议.记着早了几年,大家吐槽的就是一点:网络没有模拟的好,是因为协议不兼容.于是就有了一个标准的协议:ONVIF协议 ...

  4. 小米摄像头有onvif协议_监控摄像头完好但图像不行,肯定逃不过这10个问题

    摄像头仅仅是视频监控系统的一部分,即使摄像头完好无损,监控画面也可能会出现不显示.卡顿.丢失等情况.想要彻底解决网络监控的问题,往往需要排查各个连接设备才可以判断.下面我们就总结了10个问题,彻底解决 ...

  5. JAVA实现onvif的ptz控制_使用Onvif协议进行设备PTZ云台控制

    接上一篇 使用Onvif协议最重要的应用就是对设备进行PTZ云台控制,PTZ控制包含转动.变焦等,这里我们主要讨论常用的转动和变焦(也就是放大缩小) 流程 要进行设备PTZ控制,我们首先需要获取到设备 ...

  6. onvif协议_大华的录像机添加海康摄像头,使用了onvif协议,为啥也添加不进去?...

    大华的录像机添加海康摄像头在监控项目中经常会遇到,有很多的项目我们使用并不是同一个厂家的设备. 前段时间我们弱电vip技术2群中讨论到一个问题,关于大华的录像机添加海康摄像头为什么总是不成功,很多情况 ...

  7. ONVIF协议网络摄像机(IPC)客户端程序开发(3):理解什么是Web Services

    ONVIF协议网络摄像机(IPC)客户端程序开发(3):理解什么是Web Services 1. 专栏导读 本专栏第一篇文章「专栏开篇」列出了专栏的完整目录,按目录顺序阅读,有助于你的理解,专栏前面文 ...

  8. ONVIF协议网络摄像机(IPC)客户端程序开发(2):第一次使用IPC摄像头

    ONVIF协议网络摄像机(IPC)客户端程序开发(2):第一次使用IPC摄像头 1. 专栏导读 2. 适合读者 本文只适合第一次拿到IPC摄像头,很好奇该怎么使用IPC的读者.已经玩过IPC的,可以略 ...

  9. ONVIF协议网络摄像机(IPC)客户端程序开发(8):获取设备基本信息

    ONVIF协议网络摄像机(IPC)客户端程序开发(8):获取设备基本信息 1 专栏导读 本专栏第一篇文章「专栏开篇」列出了专栏的完整目录,按目录顺序阅读,有助于你的理解,专栏前面文章讲过的知识点(或代 ...

最新文章

  1. SQL语句——将Excel文档导入数据表中
  2. ArcIMS .NET Link的开发配置
  3. python读取excel某一列内容-Python读取Excel数据并根据列名取值
  4. 计算机科学与技术 单片机,单片机-兰州交通大学计算机科学与技术实验教学中心...
  5. 64位环境0和NULL的区别
  6. HDU 3974 Assign the task(dfs时间戳+线段树成段更新)
  7. 100. Same Tree
  8. ctfshow-萌新-web14( 曲线救国-POST请求绕过获取网站敏感信息)
  9. PHP文件可限速下载代码
  10. 腾讯云 python接口_python调用腾讯云短信接口
  11. 微信小程序支付封装-复制即用
  12. U盘的针脚板竟然掉了
  13. 例3.3 哈夫曼树 - 九度教程第30题(哈夫曼树)
  14. 软件测试中的43个功能测试点总结
  15. Windows使用MinGW编译ffmpeg
  16. 免杀横向移动工具WMIHACKER
  17. hadoop学习路线
  18. QtCreator总是崩溃卡死的问题
  19. 程序员最不想让你知道的尴尬瞬间,看完我眼睛都绿了
  20. 嵌入式linux学习笔记--gitlab学习笔记-gitlab-runnner简单的使用介绍

热门文章

  1. java发送短信的发送报告处理
  2. 旧的非flash版Metalink的入口
  3. 以太网的分层架构_以太网矩阵(Ethernet Fabric)简介
  4. 计算机考场桌子大小,自己打卧室电脑书桌最小宽度尺寸多少合适
  5. LeetCode 669. 修剪二叉搜索树(Trim a Binary Search Tree)
  6. ASP.NET中DropDownList控件的简单使用--DDL绑定数据库表中值,选择DDL中值直接检索数据...
  7. linux文件或目录权限修改后如何恢复(备份了权限就能恢复)
  8. watch 与 computed
  9. JAVA 反射 动态获取类,并调用方法
  10. hdu 2222 Keywords Search ac自己主动机