海康威视SDK实例QtDemo显示NVR视频窗口(Linux+Qt)

陈拓 2021/07/312021/08/01

1. 概述

在《海康威视客户端iVMS-4200连接NVR》

https://zhuanlan.zhihu.com/p/395137370

https://blog.csdn.net/chentuo2000/article/details/119298486

一文中我们通过海康威视客户端iVMS-4200连接NVR。

本文我们通过海康SDK连接NVR。

2. 下载SDK

海康威视:https://www.hikvision.com/cn/

  • 下载地址

https://open.hikvision.com/download/5cda567cf47ae80dd41a54b3?type=10

  • 文档下载

  • 程序包下载

CH-HCNetSDKV6.1.6.45_build20210302_linux64_20210428163105.zip

  • 解压

3. 安装QT

见《在Win10的Linux子系统Ubuntu中使用Qt》

https://zhuanlan.zhihu.com/p/393630007

https://blog.csdn.net/chentuo2000/article/details/119146380

4. 编译海康官方实例

4.1 复制实例文件

  • 复制QtDemo

将前面下载的海康SDK中的文件夹QtDemo复制到我们在《在Win10的Linux子系统Ubuntu中使用Qt》一文中创建的目录hk中。

在WSL中的目录hk

对应Win10的目录:

C:\Users\admin\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\ccdc\hk

  • 修改权限

chmod -R 755 QtDemo

  • 复制库文件

进入QtDemo

查看qt_demo_readme.txt

将SDK/lib下所有so文件拷贝到QtDemo/Linux64/lib

修改权限

chmod -R 755 Linux64/lib

4.2 编译

  • 进入目录Linux64

  • 运行Qt Creator

qtcreator

  • 打开项目

File > Open File or Project…

选择项目,Open

  • 编译

Build > Build All

有错误。

  • 改错

实例代码是用Qt4.7编写的,我用Qt5,要修改代码,要修改的地方很多。

1) 修改编码

所以出现下面提示的地方都要改:

选择编码:

使用GBK编码,否则中文乱码。

2) QtGui/QDialog找不到

Qt版本的问题去掉QtGui/。还有很多同样的错误,所有出现这个错误的地方都要改。

3)  error: 'UnicodeUTF8' is not a member of 'QApplication'

原因是:QCoreApplication::UnicodeUTF8已被弃用。解决方法:

修改

setText(QApplication::translate("MainWindow", "&Quitar", 0, QApplication::UnicodeUTF8));

setText(QApplication::translate("MainWindow", "&Quitar", 0);

4)  error: ‘class QHeaderView’ has no member named ‘setResizeMode’

解决方法:

将 setResizeMode 替换为为 setSectionResizeMode

即将:

table->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents);

table->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents);

替换为

table->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);

table->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);

5) error: ‘setCodecForTr’ is not a member of ‘QTextCodec’

Qt5以前涉及到中文要用下面三行:

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

Qt5删除了QTextCodec的成员函数setCodecForTr和setCodecForCStrings:

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

解决方法,注释掉上面两行。

修改,编译,再修改,再编译,直到没有错误。

  • 再编译

没有错误,警告不管它。

编译完成

4.3 运行

  • 按F5或者点击左下角的Run按钮运行程序

  • 右击device tree登录

登录设置:

OK

选择通道:

双击选择的通道:

  • 实时监控Preview

  • 回放Playback

海康威视SDK实例QtDemo显示NVR视频窗口(Linux+Qt)相关推荐

  1. 海康威视SDK控制台程序consoleDemo获取视频通道参数

    陈拓 2021/08/27-2020/08/27 1. 概述 在<海康威视SDK控制台程序consoleDemo> https://zhuanlan.zhihu.com/p/4039038 ...

  2. 海康威视SDK控制台程序consoleDemo

    陈拓 2021/08/10-2020/08/10 1. 下载海康威视SDK 见<海康威视SDK实例QtDemo显示NVR视频窗口(Linux+Qt)> https://zhuanlan.z ...

  3. 海康威视SDK控制台程序consoleDemo将实时码流保存为视频文件mp4

    陈拓 2021/08/28-2020/08/29 1. 概述 在<海康威视SDK控制台程序consoleDemo> https://zhuanlan.zhihu.com/p/4039038 ...

  4. 海康威视SDK控制台程序consoleDemo获取码流

    陈拓 2021/08/28-2020/08/28 1. 概述 在<海康威视SDK控制台程序consoleDemo> https://zhuanlan.zhihu.com/p/4039038 ...

  5. 海康威视SDK通过NVR获取视频设备的状态

    海康威视SDK通过NVR获取视频设备的状态 前言 项目现场是通过NVR对多路摄像头设备进行集中管理,包括实时画面的预览和视频信号的存储.回放. 现在要实现这样一个功能:定期查询摄像头的状态,以确保摄像 ...

  6. java对接海康威视SDK(win64、linux64),处理播放实时流转码,按时间回放功能,附海康威视最新3.0摄像头监控web端实例+插件

    java对接海康威视SDK(win64.linux64),处理播放实时流转码,按时间回放功能 准备工作 遇到的坑 调用步骤 参数配置 DeviceEnums 初始化sdk 注册 大华的sdk叫登陆海康 ...

  7. C++ 使用海康威视SDK将视频推流到rtmp服务器

    研究FFmpeg有两三年了,一直没写过这方面的文章,今天记一下. 由于工作关系,需要将化工企业内部的视频发布到一个部署在公网的视频服务器,然后由相关人员浏览.由于是化工企业,企业严禁外部的机器直接访问 ...

  8. 爱奇艺视频窗口显示不出来解决办法

    爱奇艺视频窗口显示不出来解决办法 一见 2014/4/11 22:30 1. 问题描述 自爱奇艺视频3.2版本以来,遇到爱奇艺视频窗口显示不出来,不管是从菜单.任务栏.桌面.还是通知栏点击,窗口都显示 ...

  9. QT开发小计:五、引入海康威视SDK开发视频监控系统环境搭建步骤及代码示例

    1.新建项目: 标题 2.修改项目配置文件 .pro 增加内容: 3.导入头文件(*.h) 项目目录,新建文件夹 [include],从海康SDK把头文件拷出来 4.导入静态链接库文件(*.lib) ...

最新文章

  1. 允许Android随着屏幕转动的控制自由转移到任何地方(附demo)
  2. 擴展PictureBox的一個組件
  3. 银监会周末突发4号文件,18年贷款比想象的要难
  4. JavaScript的Function 类型
  5. 介质簇结构不正确_电动蝶阀的结构特征以及优点,值得看完
  6. 51单片机(STC15W408AS)映射printf函数 串口收发实现
  7. plist文件的读写
  8. 解决修改jsp代码之后,浏览器刷新页面却没有变化
  9. 遥感原理与应用_专家报告 | 叶绿素荧光卫星遥感—原理与应用
  10. php 取余数函数,PHP取余函数介绍MOD(x,y)与x%y
  11. deviceOrientation简介
  12. 计算机语言安装不上,安装程序包的语言不受系统支持该怎么办?解决方法教程...
  13. mysql 月初 月末_sqlserver 取取月初月末和月份间隔
  14. 互联网音乐告别版权战,音乐社区或成新风口?
  15. 第一个TensorFlow模型:摄氏度转换为华氏度
  16. SD卡分区教程 安卓手机SD卡分区
  17. 解决SSH连接不上的问题
  18. 固态硬盘和机械硬盘的比较和SQLSERVER在两种硬盘上的性能差异
  19. 浅尝辄止MongoDB:GridFS
  20. CMMI将能力成熟度分为5个级别

热门文章

  1. Redis源代码分析(十一年)--- memtest内存测试
  2. 关于学习CRS计算机订座系统的实践报告
  3. ROS1/ROS2机器人课程开设难度如何
  4. ccd视觉检测设备主要应用于哪些场景
  5. Laravel 自定义错误页面
  6. 多目标车辆路径问题学习全过程(详细)
  7. java is命名_JAVA命名规范性总结
  8. 输出单个字符和字符串
  9. 使用Flashbuilder/Flashbuilder-plugins搭建Flex工程每日构建(自动化构建)的方法
  10. 进程同步C语言p v实验报告,操作系统实验报告模板