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

news/2024/7/8 1:38:50 标签: 海康威视, SDK, WSL, Linux, Qt

海康威视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 编译

  • 运行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


http://www.niftyadmin.cn/n/1733093.html

相关文章

Ubuntu 18.04安装远程桌面

Ubuntu 18.04安装远程桌面 陈拓 2021/08/05-2020/08/08 1. Putty登录 IP地址 192.168.0.103 登录账户 ccdc xxxxxxxx 2. Ubuntu 18.04安装桌面 如果安装的系统已经带桌面跳过这一步。 2.1 查看linux系统版本 lsb_release -a 2.2 安装桌面 sudo apt-get install ubuntu…

CSS浮动属性,知道原理就很简单,灵活控制块级元素在一行内显示

在页面布局中,有两个非常常用的CSS属性。它们巧妙的控制着块级元素们之间的位置,灵活的让块级元素在一行内显示或者另起一行。说到这里,相信大家已经猜出来了,这两个属性就是控制块级元素浮动的属性。整个页面布局过程中&#xff…

HTML Dom Table对象

http://www.w3school.com.cn/htmldom/dom_obj_table.asp Table 对象 Table 对象代表一个 HTML 表格。 在 HTML 文档中 <table> 标签每出现一次&#xff0c;一个 Table 对象就会被创建。 IE: Internet Explorer, F: Firefox, O: Opera, W3C: W3C 标准. Table 对象集合 集合…

HTML DOM deleteRow() 方法

http://www.w3school.com.cn/htmldom/met_table_deleterow.asp 定义和用法 deleteRow() 方法用于从表格删除指定位置的行。 语法 tableObject.deleteRow(index) 说明 参数 index 指定了要删除的行在表中的位置。行的编码顺序就是他们在文档源代码中出现的顺序。<thead> 和…

JavaScprit30-6 学习笔记

今天学习的是 仿即时搜索诗句效果 第一个问题&#xff1a; fetch() Fetch API 提供了一个 JavaScript接口&#xff0c;用于访问和操纵HTTP管道的部分&#xff0c;例如请求和响应。它还提供了一个全局 fetch()方法&#xff0c;该方法提供了一种简单&#xff0c;合乎逻辑的方式…

java删除目录下所有文件以及目录

import java.io.File;public class Test12121 {/*** param args*//*** 删除目录下一级的所有文件与目录* param file*/private void delTempFiles(File file,Test12121 biz) throws Exception{//if(file.isFile()) {//if(!file.delete()) {if(file.isFile()) {file.delete();} …

Ubuntu18.04和Win10共享文件夹

Ubuntu18.04和Win10共享文件夹 陈拓2021/08/05-2020/08/08 1. 概述 Ubuntu18.04局域网共享文件夹&#xff0c;实现win10和Ubuntu局域网访问。 2. Ubuntu 下设置共享文件夹 右击要共享的文件夹 例如hk 选择Local Network Share点击Share this folder&#xff0c;需要安装共享…

守护线程与用户线程

守护线程与普通线程的唯一区别是&#xff1a;当JVM中所有的线程都是守护线程的时候&#xff0c;JVM就可以退出了&#xff1b;如果还有一个或以上的非守护线程则不会退出。&#xff08;以上是针对正常退出&#xff0c;调用System.exit则必定会退出&#xff09; 所以setD…