一、前言

从最初编写这个工具开始的时间算起来,至少5年多,一直持续完善到今天,这个工具看起来小也不小大也不大,但是也是经历过无数个现场的洗礼,毫不夸张的说,市面上能够遇到的主流的厂商的设备,都测试过,而且做过大量设备的测试,并不是调试个一个两个的,也并不是在实验室环境中搞开发的,而是在各种现场的复杂环境中成长起来的,无数个小细节的修改和调整,基本上都是第一时间现场反馈后,根据现场的复杂情况进行完善。整个根据大致经历过5个阶段:

  1. 雏形阶段,能够搜索设备,获取到设备的基本信息,取出rtsp码流地址。
  2. 增加视频参数、图片参数等,可以调整图片的明亮度、对比度、饱和度等。
  3. 增加云台和预置位相关,可上下左右调整云台,拉近拉远,增删改查和触发预置位。
  4. 增加OSD相关,增删改查OSD信息。
  5. 打开摄像头,实时预览监控画面,可保存录像文件,音视频同步存储到MP4文件。

二、效果图







三、体验地址

  1. 国内站点:https://gitee.com/feiyangqingyun
  2. 国际站点:https://github.com/feiyangqingyun
  3. 个人作品:https://blog.csdn.net/feiyangqingyun/article/details/97565652
  4. 体验地址:https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 提取码:01jf 文件名:bin_video_onvif。

四、功能特点

  1. 广播搜索设备,支持IPC和NVR,依次返回。
  2. 可选择不同的网卡IP进行对应网段设备的搜索。
  3. 依次获取Onvif地址、Media地址、Profile文件、Rtsp地址。
  4. 可对指定的Profile获取视频流Rtsp地址,比如主码流地址、子码流地址。
  5. 可对每个设备设置Onvif用户信息,用于认证获取详细信息。
  6. 可实时预览摄像机图像。
  7. 支持云台控制,可上下左右调节云台,支持绝对移动、相对移动、连续移动三种方式,可对图像拉近拉远。
  8. 支持获取预置位集合、调用预置位、添加预置位、删除预置位等。
  9. 支持图片参数设置,包括亮度、对比度、饱和度、锐度等。
  10. 支持Qt4和Qt6任意Qt版本以及后续Qt版本,亲测Qt4.7到Qt6.5。
  11. 支持任意编译器,亲测mingw、msvc、gcc、clang。
  12. 支持任意操作系统,亲测xp、win7、win10、android、linux、嵌入式linux、树莓派全志H3等。
  13. 支持任意Onvif摄像机和NVR,亲测海康、大华、宇视、天地伟业、华为、海思芯片内核等,可定制开发。
  14. 支持对指定IP地址及onvif地址进行单播搜索,比如跨网段情况下非常有用。
  15. 支持指定过滤条件过滤搜索设备,比如只搜索某个网段的设备或者针对某个地址的设备。
  16. 支持搜索间隔和搜索策略设置,保证所有设备搜索回来,在大量设备现场很有用(亲测上千个摄像机现场,搜索回来的设备数量比摄像机厂家自带搜索工具还要准确)。
  17. 可对设备进行重启、网络参数获取等。
  18. 支持各种事件订阅(入侵报警、越界报警、遮挡报警等)、Onvif抓图等操作。
  19. 支持NTP校时和时间同步设置。
  20. 支持OSD相关操作,可以增删改查OSD信息。
  21. 内置了线程实时执行Onvif指令队列,排队最大速度的执行对应的指令,执行结果信号发出。
  22. 采用的最底层的TCP+UDP通信机制,原创最底层协议解析,纯QtWidget编写。
  23. 超级小巧轻量,总共约3000行代码,不依赖任何第三方的库和组件,跨平台。
  24. 封装好了通用的数据发送和接收解析的函数,可以非常方便的自行拓展其他Onvif处理。
  25. 工具上提供了收发数据文本框,显示收发的数据,方便查看和分析。
  26. 支持所有Onvif设备,代码工整,接口友好,直接引入pri即可使用。

Qt/C++编写onvif工具(搜索/云台/预置位/OSD/录像存储)的更多相关文章

  1. ONVIF客户端中预置位设置代码实现过程

    simpleOnvif的功能:提供支持Windows.Linux.arm.Android.iOS等各种平台的SDK库,方便集成,二次开发 之前跟大家分享了我们安徽思蔷信息科技的simpleOnvif的 ...

  2. EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案中使用Onvif协议控制视频设备预置位转动

    EasyNVR支持预置位控制,包括转到指定预置位,设置指定预置位,删除指定预置位.预置位在安防领域有较为普遍的应用,可以进行很多既定位置的跳转,很方便.之前我们说过如何用Onvif协议进行设备的发现, ...

  3. java 编写小工具 尝试 学习(七)

    1.在java 编写小工具 尝试 学习(六)里学会了,控件 的随意摆放, 以及大小(x,y,width,height),又根据前面学习的按钮 被点击 的事件监控 的方法 ,点击 按钮 在显示区域显示“ ...

  4. 利用Eric+Qt Designer编写倒计时时钟

    [前言]前几日通过编写命令行通讯录,掌握了Python的基本语法结构,于是开始向更高水平冲击,利用Eric与Qt Designer 编写一个带界面的小程序.本次实操中也确实遇到了不少问题,通过学习也都 ...

  5. Qt使用com组件的一点小心得(使用Qt自带的工具dumpcpp生成.h和.cpp文件)

    这几天工作中要用到Qt调用com组件,主要用到的类型有dll和ocx,使用他们的方法很简单:1.将com组件注册到系统中.2.使用Qt自带的工具dumpcpp将com组件生成cpp和头文件.3.然后就 ...

  6. 编写TypeScript工具类型,你需要知道的知识

    什么是工具类型 用 JavaScript 编写中大型程序是离不开 lodash 工具的,而用 TypeScript 编程同样离不开工具类型的帮助,工具类型就是类型版的 lodash .简单的来说,就是 ...

  7. (数据科学学习手札80)用Python编写小工具下载OSM路网数据

    本文对应脚本已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 我们平时在数据可视化或空间数据分析的过程中经常会 ...

  8. paip.slap工具与于64位win7与JDBC的性能对比

    paip.slap工具与于64位win7与JDBC的性能对比 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog ...

  9. Qt编写Onvif搜索及云台控制工具

    一.前言 这个工具很早以前大概在2013年就想做了,后面杂七杂八的事情一再耽搁,记得当时最初用的是soap类来搜索和解析的,后面发现太大了,每次编译都要等好久,光源码文件加起来都快10MB了,而且函数 ...

  10. PHP语言编写的磁力搜索工具下载BT种子 支持transmission、qBittorrent

    磁力搜索网站2020/01/12更新 https://www.cnblogs.com/cilisousuo/p/12099547.html PT种子.BT种子搜索功能 IYUU自动辅种工具,目前能对国 ...

随机推荐

  1. Docker挂载jar包运行脚本

    下载镜像 docker pull openjdk:8 执行命令 docker run -d -p 9001:8081 -v /opt/springboot-docker-1.0.jar:/var/li ...

  2. Exchange2016中搜索和删除邮件

    Exchange2016中搜索和删除邮件 在以前版本的 Exchange 中,可以运行 Search-Mailbox -DeleteContent  命令搜索并删除电子邮件.你仍可以在 Exchang ...

  3. Acrobat DC安装报错1603,Microsoft Visual C++2013(x64)失败

    之前顺利安装过Acrobat DC,但可能因为自动更新了,导致让我重新登录才能使用,无法再次破解.于是我卸载后重新安装,发现提示Microsoft Visual C++2013(x64)运行安装失败. ...

  4. C# .netcore NPOI库 实现报表的列自适应删减

    实际需求:业务上的一个需求,数据库表A中的B字段存放的是该条数据的一些标签,标签存在两级[即一级标签和二级标签], 现在要是实现将这些标签统计到报表中,一级标签作为表头,二级标签作为填充值. 由于之前 ...

  5. KubeSphere v4 安装指南

    日前,KubeSphere v4 发布,相较于之前的版本,新版本在架构上有了颠覆性的变化.为了让社区的各位小伙伴能够丝滑的从旧版本过渡到新版本,我们特别推出本篇安装指南文章,以供参考. 关于 Kube ...

  6. 会话层技术-session

    会话层技术-session session技术拿下! 一.先整理学习过程中的几个疑惑 cookie和session分别都是怎么创建的? 首先cookie是一个类,它需要java后端开发人员手动创建. ...

  7. CSS动画(波光粼粼登录页面)

    1.整体效果 https://mmbiz.qpic.cn/sz_mmbiz_gif/EGZdlrTDJa4AbemkU3vLRIDzTIgPHSjicia97wfvMVAhqZL4lsGbQQCbsV ...

  8. 狂神说-Docker基础-学习笔记-07 容器数据卷

    狂神说-Docker基础-学习笔记-07 容器数据卷 视频地址:https://www.bilibili.com/video/BV1og4y1q7M4?p=21 什么是容器数据卷 运行时数据都在容器中 ...

  9. cv算法工程师成长路线

    前言 一,计算机系统 1.1,计算机系统书籍 1.2,设计模式教程 二,编程语言 2.1,C++ 学习资料 2.2,Python 学习资料 三,数据结构与算法 3.1,数据结构与算法课程 3.2,算法 ...

  10. 2024御网线上Pwn方向题解

    ASM Checksec检查保护 基本上保护都关闭了 64位ida逆向 程序只有一段,并且返回地址就是输入的数据,看起来就是srop了,找一下可以用的gadget 通过异或清空rax值,然后通过异或e ...