本来一直以为抓图,需要先取出视频码流,在进行抓图,业务非常复杂。今天发现,onvif协议居然能够直接进行抓图操作。

首先获取图片的url,然后调用http协议把图片下载下来。

本人测试摄像机为海康IPC。

onvif协议的实现可以参考前面一篇文章,

https://blog.csdn.net/g0415shenw/article/details/80068728

这里主要介绍抓图的api的使用。使用GetSnapshotUri方法获取图片的url

Profile[] mProfiles = mediaClient.GetProfiles();if (mProfiles.Length > 0){var ttt = mediaClient.GetSnapshotUri(mProfiles[0].token);if(SavePhotoFromUrl("pictest.JPEG", ttt.Uri)){Console.WriteLine("success");}}

在用http协议把图片下载到本地,注意根据onvif协议的规定,抓图的图片一定是JPEG格式。标准说明如下:

网络客户端使用GetSnapshotUri命令从NVT获得JPEG 快照 。返回的URI应无限期地保持有效,即使文件改变。ValidUntilConnect、ValidUntilReboot和Timeout参数应相应的设置(ValidUntilConnect = FALSE,ValidUntilReboot = FALSE, Timeout=PT0S)。URI可通过一个HTTP GET操作获取JPEG图像。图像编码总是JPEG的编码设置,忽略在媒体配置文件中的编码设置。NVT支持此命令。

另外海康的设备需要校验用户名和密码,开始抓图失败就是这个原因。获取url下浏览器上也可以直接打开。

工程源码如下,开发环境vs2017 开发语C#

onvif协议之抓图

onvif协议之抓图相关推荐

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

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

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

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

  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. 怎么通过ip连接oracle,Oracle 无法通过IP连接问题
  2. 错误 LNK2019 无法解析的外部符号 “public: void __cdecl cv::Mat::copyTo(class cv::debug_build_guard::_OutputArray
  3. Kafka科普系列 | 什么是LSO?
  4. php网页302错误,swfupload提示“错误302”的解决方法
  5. Java获取泛型类的实际类型的实例
  6. STM32定义数组到flash的指定位置
  7. eda多功能时钟设计_Altera FPGACPLD设计 基础篇+高级篇(附随书光盘)
  8. 线性同余法随机数生成
  9. 网络编程在线英英词典之服务器代码框架搭建(二)
  10. Minio纠删码与存储级别
  11. 3g显卡测试软件,显卡测试平台说明及Heaven benchmark
  12. 2019一键清空朋友圈_微信一键删除好友软件(2019微信批量删除好友最快速有效的方法)...
  13. 基于Neo4j构建的外贸企业关系图谱做企业相似度查询
  14. 误差条图各部分的代表意思_【小强视界】混凝土搅拌站计量误差原因分析及控制措施...
  15. 机器学习-LDA--景区评论分析 ipython
  16. 算法探索实录 - 4、递归
  17. Swarm安装与应用
  18. eclipse怎么搜索关键字? eclipse查找关键字的技巧
  19. 丝芙兰(Sephora)和悦诗风吟(Innisfree)如何用“购物篮”改善顾客购物体验
  20. Rxjava入门与使用

热门文章

  1. 如何利用系统自带的小工具制作特殊字符
  2. ubuntu 装完系统之后的简单配置
  3. 保护系统 用SVS为Windows穿上“层层”防弹衣
  4. 浏览器了解(七)Layout
  5. CenterNet :Objects as Points 详解
  6. 光盘放进电脑读不出来_U盘插入电脑读不出来?学会这3招,轻松解决USB无法读取的问题...
  7. 30秒您学会配置TomCat环境变量,并运行无错
  8. 网关 跨域_好文推荐:微服务网关实战—Spring Cloud Gateway
  9. 鸿蒙公测第二期报名地址,鸿蒙2.0第二期公测报名入口及参加方法
  10. django 笔记3