QT+OPENCV或AVILIB实现录屏功能

Qt编写的录屏软件,抓屏-合成视频(录屏demo) 使用Qt抓屏,然后通过avilib合成视频并保存至本地。 属于demo级,已完成录屏功能,具体性能待优化。 立即下载

先说说opencv,直接转载:https://www.cnblogs.com/WushiShengFei/p/11202250.html

怎么得到qimage就不说了,他的核心函数为:

bool g_needstop =false;void Record()
{
     RECT rect;
     //获取窗体位置大小
     GetWindowRect(hd,&rect);
     cv::Size frameSize;
     frameSize.width=rect.right-rect.left;
     frameSize.height=rect.bottom-rect.top;   
     cv::VideoWriter VideoWriter;
     if(!VideoWriter.open("d:\\1.avi",CV_FOURCC('M', 'J', 'P', 'G'),40,frameSize))
         return;
    while(!g_needstop)
    {
        QPixmap pm;
        GetGDIBitmap(hd,pm,0,0,frameSize.width,frameSize.height);
        VideoWriter.write(ImageToMat(pm.toImage()));
    }        VideoWriter.release(); 
}
 
Mat ImageToMat(QImage img,QString imgFormat)
{
    if(img.isNull())
        return Mat();
    QByteArray ba;
    QBuffer buffer(&ba);
    buffer.open(QIODevice::WriteOnly);
    img.save(&buffer,imgFormat.toLatin1().data());
    _InputArray arrSrc(ba.data(), ba.size());
    Mat mat = cv::imdecode(arrSrc, CV_LOAD_IMAGE_COLOR);
    return mat;
}

继续说说用avilib来生成avi文件,实际是使用mjpg格式生成:

https://labisart.com/blog/index.php/Home/Index/article/aid/221

Qt + VS环境下,利用avilib实现简单的录屏软件 压缩包里自带avilib.h和avilib.cpp,解压后,配置下Qt环境,可以直接运行,经测试,良心好用 立即下载

相关推荐

Qt利用avilib实现录屏功能(没有声音)

Qt录屏功能源代码,双击.pro,配置好环境,可以直接运行,如有问题,可以直接跟我留言。。。

Qt利用avilib实现录屏功能,生成avi文件

环境: Qt + vs2013 + avilib demo下载:https://download.youkuaiyun.com/download/birenxiaofeigg/12087607 界面 开始录制: 结束录制: 新建.avi文件 AVI_open_output_file(char* filename);//打开avi文件,不存在,即创建 设置视频参数 void AVI_set_video(a...

听风雨 3389

EndNote全文检索实战:如何快速配置学校图书馆资源并精准查找文献

本文详细介绍了EndNote全文检索功能的实战配置方法,核心在于通过正确设置OpenURL链接解析器,无缝对接学校图书馆资源,实现一键精准获取文献全文。文章提供了从理解机制、四步配置法到进阶技巧的完整指南,帮助科研人员高效管理海量PDF,构建个人知识体系,大幅提升文献调研与写作效率。

weixin_29228781的博客 280

Qt+ffmpeg+avilib实现录屏录音的功能(包含合成)

步骤: 1.录屏 思路:子线程进行截屏的方式进行录制,再使用avilib将截取到的图片保存为视频文件。 参考文章:https://my.oschina.net/smartlliu/blog/209182 子线程录制通过上文中的ToAviThread来实现 void ToAviThread::run() { QScreen *screen = QApplication::prim...

dinjay的专栏 4503

九齐NY8B062F单片机:12位ADC与4路PWM在智能家居控制中的实战应用

本文详细介绍了九齐NY8B062F单片机在智能家居控制中的实战应用,重点解析其12位ADC高精度传感器数据采集和4路PWM精准驱动技术。通过实际案例展示如何利用该单片机实现温湿度监测、灯光调节及电机控制,并分享低功耗设计与抗干扰方案,为低成本高可靠性的智能家居设备开发提供完整解决方案。

rnn9storyteller的博客 732

Cadence DSP 算子开发实战:从入门到精通

本文详细介绍了Cadence DSP算子开发的实战技巧,从入门基础到高级优化。内容涵盖DSP架构特性、内存管理、分块计算策略、SIMD指令优化等核心知识,并提供了性能调优和调试的实用技巧,帮助开发者快速掌握Cadence DSP开发精髓,提升图像处理等计算密集型任务的开发效率。

weixin_29278805的博客 436

Qt利用avilib实现录屏功能_如何找到电脑录屏功能?4种方法教你一键打开,不会用来学一学...

如何找到电脑录屏功能?4种方法教你一键打开,不会用来学一学每次看到别人用电脑录制教程视频,我就很好奇自己的电脑也能录制吗?其实我们电脑自带录屏功能,并且内容远比我们想象的丰富。那么今天就来说说电脑录屏的4种方法,以及使用步骤和功能,一起来看看吧!1、游戏模式录制如果你想录制你打游戏的精彩瞬间,那么Win10自带游戏模式录制。键盘按下快捷键win+G,出现游戏录制工具栏,候选确定即可录制。但是该录制...

weixin_39618121的博客 455

AI Agent在营销领域的实战策略

本文从第一性原理出发,系统性拆解AI Agent在营销领域的落地逻辑、技术架构、实现方案与实战策略。全文覆盖从基础概念到高级优化的全层级知识:底层理论层面推导营销Agent的效用函数与决策框架;技术架构层面提出"感知-记忆-规划-行动-反思"五组件可落地架构;实践层面提供生产级代码实现、多行业案例与ROI提升方法论;前沿层面探讨多Agent协同、世界模型仿真等下一代技术方向。

操作系统内核探秘的博客 228

USB Camera V4L2 视频录制——ubuntu(1)

博主QQ:1356438802 本文工作平台:Ubuntu 12.04 + x264-lib-v120 前面研究了大半年的OpenCV开源库,其实也是断断续续的研究哈,本来是要做USB Camera图像识别的。但是公司有个项目要做USB Camera视频录制,所以先看了下OpenCV对于USB Camera录像的支持,在windows平台是可以的《win7_64bits下QT使

luoyouren的专栏 4033

基于深度学习的时间序列预测

深度学习在时间序列数据中应用广泛,学术界已经有很多深度学习模型来适应不同领域的时间序列数据集的多样性。那么到底有哪些基于深度学习的时间序列预测模型?他们的优缺点是什么?让我们一起来看一下。

Sharon0408的博客 6582

关于深度可分离卷积

关于深度学习中的深度可分离卷积

qq_45670407的博客 1796

Qt C++ 录屏录音功能实现(avilib+ffmpeg)以及动态库生成

实现一个录屏+录音的功能且需要快速开发,Qt无疑是一个非常好的选择。他有丰富的类库和接口可以很好的满足开发需求。录屏的主要思路为抓取屏幕截图,然后将其合成视频。

qq_35769071的博客 4893

[SystemC]SystemC中的模块和程序

SystemC 中的层次结构是使用类 sc_module 创建的。sc_module 可以直接使用,也可以使用宏 SC_MODULE “隐藏”。上面的示例 SC_MODULE 创建了一个名为 nand2 的 sc_module 类对象。它的输出纯粹是输入值的函数。因此,模型可以使用最简单的 SystemC 进程,即 SC_METHOD。摘要:本节包含一个完整的简单设计,用于演示 SystemC 中模块和流程的使用。同样,重要的是要注意这不是典型的设计风格 - 但它很好而且易于理解。为什么要看模块和流程?

元直的博客 1870

Qt利用avilib实现录屏功能_利用“别名”实现Sendmail的邮件群发和邮件备份功能...

前序Sendmail服务器是一款经典的邮件发送软件,利用SMTP协议,实现邮件的发送,在CentOS7 邮件服务器部署(sendmail)中,我们学习了sendmail的基础配置,今天我们通过Linux系统中自带的alias别名文件,实现Senmail的邮件群发功能和邮件备份功能。模拟实验实验环境CentOS7:192.168.88.10(DNS服务器);192.168.88.20(Sendmai...

weixin_39746282的博客 297

YOLOv11改进策略【Neck】| SEAM:分离和增强注意模块,解决复杂场景下的小目标遮挡问题

本文记录的是利用 SEAM 模块优化 YOLOv11 的目标检测网络模型。的设计出发点在于解决复杂场景下的人脸遮挡问题,相当于是小目标被其他物体部分遮挡时,传统方法因特征缺失导致检测精度下降的问题。该模块通过增强未遮挡区域的特征响应并补偿被遮挡区域的信息损失,提升模型对遮挡小目标的检测能力。YOLO-FaceV2: A Scale and Occlusion Aware Face DetectorSEAM模块(Separated and Enhancement Attention Module)的设计出发点

Limiiiing的博客 2281

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

qt实现windows系统下录屏功能

我的程序是借鉴了网上流传的avilib源码实现的屏幕录制。 功能: 1.最高支持1080P 24帧率高清录制 2.支持特定屏幕区域录制 3.支持录屏质量修改,质量越高,录制单位时间生成的avi文件越大 4.支持帧率选择 5.通过的 注意点: 1.debug下录制 ...

weixin_43935474的博客 4632

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

QT C++实现录屏程序

链接:https://pan.quark.cn/s/c394ee6594fc。完整内容,需要调用到的第三方库以及对应的头文件链接。还可以进行定时删除录制视频,防止磁盘爆满;使用简单的程序,完善实现录屏效果。实现录屏,以及可以调整帧率;

1954

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

QT入门篇:视频播放器

最近迫于工程需求,开始学习QT编程。 在这个过程中学到的两个点: 程序不是简单的堆砌,一定要明白自己写的每句话起到的作用是什么; 细心且耐心,找bug是一个很消磨耐心的事,所以想好了再动手。 本文按步骤介绍自己用QT实现一个简单的视频播放器的过程,介绍在这个过程中遇到的一些入门级知识点,以及解决方式。 入门 1. QT的“跨平台”特点 之前一直只了解QT是跨平台的,但是对“平台”的理解并不准确。 当我们讨论开发应用程序时,平台可能有很多不同的含义,包括操作系统类型、操作系统版本、编译器...

小草莓的魔法笔记 5169

Qt结合FFmpeg转码码流数据(h264)生成不同视频格式(mp4、mov、flv、avi等)

Qt结合FFmpeg转码码流数据(h264)生成不同视频格式(mp4、mov、flv、avi等),也可以将不同封装格式的视频转换成其他封装格式,例如将mp4格式的视频转成mov格式的视频。

似末的博客 5337

qt 录屏功能 截屏通过opencv保存成MP4视频文件

功能:界面点击开始录制,通过定时器截屏,同时把数据写入MP4视频文件里(线程里执行),关于opencv写视频文件本案例采用了gstream pipeline的方式,需要安装GStreamer 并且具备相关的插件和编解码器,本代码提供主体框架,可直接套用,大家根据实际应用场景稍作修改。

zdx135的博客 866

avilib库的使用

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34064653的博客 2789

Qt之AVI录屏

/******** CScreenShot.h **************/ #ifndef __CSCREENSHOT_H #define __CSCREENSHOT_H #include <QRunnable> #include <QPixmap> #include <QMutex> #include <QWaitCondition> #include <QThread> #define CollectGarbage(className)

Roads 1526

Qt利用avilib实现录屏功能_openlayers6结合geoserver利用WFS服务实现图层新增功能(附源码下载)...

内容概览1.openlayers6结合geoserver利用WFS服务实现图层新增功能2.源代码demo下载效果图如下:本篇主要是openlayers6通过调用geoserver发布的地图服务WFS来达到图层新增记录的目的。与GeoServer的WFS进行基于Rest交互关键就在于请求参数,值得注意的是这些请求最好采用POST方法发送。查询可以采用json,但增加,删除,修改都只能采用XML形式T...

weixin_39785600的博客 311

Qt实现avi格式录制视频

        声明:刚刚接触qt开发,觉得qt真的很强大,也正是因为它的强大,所以在这条路上还有很远很远的路要走,希望大家多多指教,多多交流共同进步。另外由于本人不是系统的从头开始学qt,主要是在实战需求中来实现功能,所以博文更偏向于功能模块的实现。        先看一张效果图(界面简陋请自动忽略):        主要基于avilib这个开源的录屏源码,利用 Qt编写来实现录屏操作。    ...

qq_37179269的博客 1万+

opencv 4.6+ qt 实现录屏

qDebug() << "帧率:" << fps;// 在另一个接口中打开writer并初始化。// 创建VideoProcessor对象。// 捕获帧并将其写入输出视频文件。

weixin_34489059的博客 441
上一篇: 对qtablewidget qtableview进行完整截屏
下一篇: qt 子线程(多线程)更新gui的方法
#Page#
博客等级 码龄23年 1691粉丝 360原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值