Qt之第三方:基于海康威视SDK实现Qt程序的视频流显示

本文介绍了如何在Qt环境下,利用海康威视的SDK将网络摄像头的视频流显示在Qt界面中。主要内容包括环境搭建,如lib、dll文件的配置,以及关键代码实现,如设备初始化、登录、视频流显示等。注意,确保dll和lib文件完整,以避免设备操作失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

工程需要把海康威视网络摄像头的视频流显示在Qt开发的界面上,一时间摸不到头绪。
也提醒大家一下,Qt自带的QCamera类对网络摄像头是无解的,不要白费力气了。
查了资料,发现海康威视官网提供一个SDK包用于支持二次开发,下载下来发现没有Qt版本的Demo,摸索了半天,借鉴了CSDN里的大神们的文章,依旧没有成功。
情急之下联系了海康官方,一个邮件指出了我的问题,成功的将网络摄像头的数据显示在了QLabel上。
现在将我的经验分享给大家,希望对大家有所帮助。

环境搭建

系统:Win7 32位
开发环境:Qt 5.7.0+海康威视SDK

首先搭建一个支持海康SDK的环境,对于SDK提供的lib和dll文件的使用,我读了一篇文章,文章提到了哪些需要,哪些不需要,我完全按照他说的挑拣出来搭环境,发现程序是运行起来了,但是总是提示“设备操作失败”。在咨询了海康的工程师后,人家一语道破:你dll拷贝的不全,才会出现设备操作失败。所以对于dll和lib,我的做法是:不挑不捡,全部使用!
具体方法是:

lib文件

把所有的lib文件拷贝到Qt编译的目录中(一般情况是以build开头的文件夹,和Makefile文件同目录下),我为了不乱,新建了一个lib文件夹,统一存放lib文件。
然后在工程的pro文件里把这些lib文件加入工程:

LIBS +="./lib/HCCore.lib"
LIBS +="./lib/HCNetSDK.lib"
LIBS +="./lib/HCAlarm.lib"
LIBS +="./lib/HCGeneralCfgMgr.lib"
LIBS +="./lib/HCPreview.lib"
LIBS +="./lib/PlayCtrl.lib"

dll文件

设置完lib文件,接下来把dll文件拷贝到和执行文件同一根目录下(一般是debug或者release文件夹里),记住,包括“库文件”目录下的dll文件,以及里面的“ClientDemoDll”文件夹,不要把文件夹里的dll拷出了,直接把这个文件夹拷过去就可以了。

.h文件

接下来把SDK中的所有头文件加到Qt工程里面,并将其包含到你想要实现的类里面:

#include "HCNetSDK.h"
#include "DataType.h"
#include "plaympeg4.h"
#include "DecodeCardSdk.h"

除此之外,也把windows.h包含进去吧。
这样一来,环境搭建就完成了。我们可以开始写程序了。

关键代码实现

首先是初始化和注册,直接贴代码吧:

bool HikvisionCameraMan::InitialCameraMan()
{
   
    //初始化
    bool ret_value=NET_DVR_Init();

    int ret_error_num;

    if
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值