`
tcspecial
  • 浏览: 911780 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

海康SDK截图

阅读更多

     最近使用海康硬盘录像机录像截图,看了其官方使用文档及提供的SDK,不愧是上市公司,使用文档描述很详细,SDK采用C语言描述; SDK没有演示如何通过实时视频流截图,下面是自己通过多次测试后成功截图的代码:

 

/**
 *@brief 初始化Playctrl库
 */
void InitRealStream()
{
	// 显示组件,在使用过程中发现必须先调用play()方法才能正常截图,而播放必须传入一窗口句柄(myVideo->winId());此时无须显示视频,隐藏界面即可
	QWidget *myVideo=new QWidget;

	// 分配播放端口
	PlayM4_GetPort(&pPlayPort);
	
	// 获得文件头长度;
	quint32 nLength= PlayM4_GetFileHeadLength();
	char *pFileHead=new char[nLength];
	
	// 设置流模式
	PlayM4_SetStreamOpenMode(pPlayPort,STREAME_REALTIME);
	
	// 打开流接口
	if(!PlayM4_OpenStream(pPlayPort,pFileHead,nLength,1024*100))
	{
		qDebug("错误:PlayM4_OpenStream: %d", PlayM4_GetLastError(pPlayPort));
		qApp->quit();
	}
	
	// 设置显示缓冲区大小
	PlayM4_SetDisplayBuf(pPlayPort,15);

	// 播放
	PlayM4_Play(pPlayPort,myVideo->winId());
}

/**
 *@brief 输入实时视频流,调用前需先调用InitRealStream()
 */
void InputStream()
{
	QByteArray pFrameData;
	
	// 接收UDP视频帧,填充缓冲区pFrameData, 省略 ....
	
	// 输入实时视频流
	PlayM4_InputData(pPlayPort,(unsigned char*)pFrameData.data(),pFrameData.size());
}

/**
 *@brief 调用PlayM4_GetJPEG()截取jpg
 */
void GetPhoto()
{
	// 图片大小,最好设置为height*width*3/2即可
	int nLen=PHOTO_HEIGHT*PHOTO_WIDTH*3/2;
	char *pByte=new char[nLen];
	DWORD pRealSize;  // 实际尺寸

	if(!PlayM4_GetJPEG(pPlayPort,(unsigned char*)pByte,nLen,&pRealSize))
	{
		qDebug("错误:抓取图片失败[%d]",PlayM4_GetLastError(pPlayPort));
	}else
	{
		qDebug("信息:截图成功");

		// 将图片写入文件
		QFile pFile("d:/test.jpg");
		pFile.open(QFile::WriteOnly|QFile::Truncate);
		pFile.write(pByte,nLen);
		pFile.close();
	}
	
	// 清理内存
	delete []pByte;
	pByte=NULL;
}

 

 

分享到:
评论
1 楼 gamesliang 2016-02-17  
   

相关推荐

    海康SDK在WPF运用.zip

    本教程主要探讨如何在Windows Presentation Foundation(WPF)框架下利用海康SDK进行开发,以创建一个直观且易于操作的用户界面。 首先,我们来理解“海康SDK在WPF运用”的核心概念。海康SDK是一组编程接口,允许...

    C#开发的海康SDK内涵开发手册

    本篇将详细解析基于C#的海康SDK开发过程,特别是利用提供的开发手册和“C#海康识别抓拍回调(增加出入口LED屏和语音播报)”这一文件,深入探讨如何进行系统集成和功能扩展。 首先,海康SDK为C#开发者提供了丰富的API...

    Delphi海康SDK开发

    "海康SDK"是该公司提供的软件开发工具包,用于帮助开发者集成其设备功能,如视频预览、录像回放、云台控制等,到自定义的应用程序中。下面我们将深入探讨如何进行"Delphi海康SDK开发"以及实现简单的系统应用。 1. *...

    HKSDK_海康_海康SDK_

    【海康SDK】是海康威视公司提供的一套用于开发视频监控应用的软件开发工具包,主要用于与海康威视的硬件设备(如摄像头、NVR等)进行交互,实现远程监控、录像回放、视频流处理等功能。在本案例中,提到的是一个已经...

    python 调用海康SDK 控制摄像头云台代码

    在使用Python调用海康SDK前,你需要先下载并安装适用于Python的海康SDK。这通常包括动态链接库文件(如.dll或.so)和相关的API文档。安装后,确保设置好环境变量,以便Python脚本能正确找到SDK的路径。 2. **导入...

    海康SDK开发手册海康SDK开发手册

    海康SDK开发手册是针对海康威视(Hikvision)产品进行软件开发的重要参考资料,主要帮助开发者理解和使用海康提供的设备网络SDK进行系统集成或功能定制。在海康威视的安防产品线中,SDK(Software Development Kit)...

    QT 海康sdk 预览 回放 多线程 同时处理 多路

    在海康SDK与QT结合的项目中,我们可以利用QT的图形界面设计能力,配合海康威视提供的SDK,实现监控设备的预览、回放以及多线程处理等功能。 海康SDK,全称为海康威视SDK,是由海康威视公司提供的编程接口,用于与其...

    String boot 整合海康SDK 常用功能 实时预览,设备抓图,云台反向定位,云台旋转控制,获取云台参数

    在本项目中,String Boot被用来快速构建和部署海康SDK相关的应用程序。 1. **实时预览**:实时预览功能允许用户通过网络实时查看摄像头捕捉的画面。实现这一功能通常涉及到设备连接、流媒体传输协议(如RTSP或HTTP...

    易语言海康SDK模块,2020年8月更新,支持官网最新SDK版本

    《易语言海康SDK模块详解及应用》 在IT领域,海康威视(Hikvision)作为全球领先的安防解决方案提供商,其设备广泛应用于监控系统。为了与海康设备进行高效交互,开发者通常需要借助SDK(Software Development Kit...

    海康SDK的DEMO

    海康SDK(Software Development Kit)是海康威视公司提供的一种工具集,旨在帮助开发者集成其产品,如摄像头、NVR等设备的功能,以便在自定义应用中实现视频监控、录像回放、报警管理等一系列操作。这篇描述提到的...

    python调用海康SDK拉取网络摄像头视频流

    海康SDK,全称为海康威视SDK(Software Development Kit),是一套包含各种库、头文件、示例代码和文档的工具包,它允许开发者通过编程接口(API)与海康的设备进行通信,实现诸如视频流获取、录像回放、报警处理等...

    c#调用海康sdk实现查看视频,回放,下载

    2. **海康SDK接口**:海康SDK提供的主要接口可能包括初始化设备、连接设备、获取设备信息、播放视频流、回放录像和下载文件等。例如,`HIK_CONNECT SDK`库中可能有`InitDevice`和`ConnectDevice`函数用于建立设备...

    .net core实现海康SDK跨平台兼容

    《.NET Core实现海康SDK跨平台兼容详解》 在当今多平台开发环境中,软件的跨平台能力成为了不可或缺的一部分。本文将深入探讨如何利用.NET Core技术实现海康SDK的跨平台兼容,涵盖Windows和Linux系统,使开发者能够...

    海康SDK二次开发,实现实时预览、按时间回放等功能Demo

    在本文中,我们将深入探讨如何使用海康SDK进行二次开发,以便实现实时预览、按时间回放以及视频下载等功能。海康威视作为全球领先的安防产品供应商,提供了丰富的SDK资源,使得开发者能够轻松地集成其设备到自定义...

    海康sdk转换成C#

    在本例中,"海康sdk转换成C#"的主题指的是将海康威视的SDK接口适配到C#编程语言中,以便在C#环境中进行视频播放和其他相关功能的开发。 首先,海康SDK可能包含用C或C++编写的原生动态链接库(DLL),这些库提供了...

    qt6+海康sdk实时显示视频流

    本文将详细讲解如何使用Qt6结合海康SDK实现实时显示视频流的步骤和技术要点。 首先,我们需要了解Qt6的新特性。Qt6作为Qt5的升级版本,引入了更多现代C++特性,如C++17的支持,增强了性能和开发效率。同时,对模块...

    LINUX版用QT C++调用海康SDK取流和控制云台

    在本项目中,Qt用于构建用户界面,与海康SDK交互,接收和显示视频流。 2. **C++编程**: C++是编写海康SDK接口的主要语言。开发者需要对C++有深入理解,包括面向对象编程、异常处理和内存管理等,以便正确使用SDK...

    海康SDK+Qt+Halcon封装.zip

    【标题】"海康SDK+Qt+Halcon封装"是一个技术整合项目,它结合了海康威视(Hikvision)的SDK、Qt框架以及Halcon机器视觉算法库,为开发人员提供了一种高效的方式来构建基于GUI的视频监控和图像处理应用。这个压缩包...

    MFC调用海康SDK

    1. **海康SDK介绍**:海康SDK通常包括视频采集、视频编码、视频解码、设备控制、录像回放等功能模块。通过SDK,开发者可以实现远程监控、实时视频流获取、录像文件管理、云台控制等功能。 2. **MFC与SDK的集成**:...

    海康SDK开发包,内涵demo实例及开发文档

    海康SDK开发包是针对海康威视产品进行软件开发的重要工具,它为开发者提供了集成海康设备功能的接口和示例代码。该开发包适用于Windows 32位操作系统,版本号为V5.1.1.3。在这个压缩包中,你将找到多种编程语言的...

Global site tag (gtag.js) - Google Analytics