🎬 ScreenRecorder — 轻量级桌面屏幕录像机 技术栈:Qt 5.14.2 + FFmpeg 8.1.2 + MSVC 2017 64bit 架构:MVC(Model-View-Controller) 平台:Windows(依托 DXGI 硬件加速抓屏)
[video(video-lfdByNkP-1783741984112)(type-csdn)(url-live.csdn.net/v/embed/534…)]
源码获取 通过网盘分享的文件:ScreenRecorder 链接: pan.baidu.com/s/1THqxW2r0… 提取码: jtsr
链接:pan.xunlei.com/s/VOxEFVaVZ… 提取码:en8b 复制这段内容后打开「手机迅雷 App」即可获取。无需下载在线查看,视频原画享倍速播放
我用夸克网盘给你分享了「ScreenRecorder.rar」,点击链接或复制整段内容,打开「夸克网盘APP」即可获取。
/6a133ZVZiT:/
链接:pan.quark.cn/s/d0357924e…
提取码:Qn4h
📖 简介 ScreenRecorder 是一款基于 Qt 和 FFmpeg 的 Windows 桌面录屏工具。支持全屏/窗口录制,H.264 硬件编码输出 MP4,内置播放器可回放录制的视频,支持 0.5x ~ 2.0x 变速播放。
🎥 演示 以下为 1080P / 25fps 全屏录制演示效果:
📁 演示视频下载:demo/demo_1080P_25fps.mp4 1783737257289 ✨ 功能特性 模块 功能 说明 🎯 屏幕录制 全屏录制 支持多显示器选择,DXGI Desktop Duplication 硬件加速 窗口录制 抓取本程序窗口 参数配置 分辨率 480p/720p/1080p,帧率 15/25/30fps 📂 文件管理 录制列表 显示所有录制文件,含文件名、时长、大小 打开目录 一键在资源管理器中定位文件 自动命名 类型_分辨率_帧率_时间戳.mp4 ▶️ 视频播放 内置播放器 实时预览录制画面 进度控制 拖拽进度条跳转播放位置 变速播放 0.5x / 0.75x / 1.0x / 1.5x / 2.0x 五档 🖥️ 实时预览 抓屏预览 录制前实时显示捕获画面 💾 输出格式 MP4/H.264 FFmpeg libx264 编码,广泛兼容 🏗️ 项目架构 ScreenRecorder/ ├── main.cpp # 应用入口,FFmpeg 初始化 ├── ScreenRecorder.pro # Qt 项目文件 ├── ffmpeg-8.1.2/ # FFmpeg 8.1.2 SDK │ ├── bin/ # 运行时 DLL │ ├── include/ # 头文件(libav*) │ ├── lib/ # 导入库(.lib / .def) │ └── ffmpeg-8.1.2.pri # Qt 子模块配置 ├── model/ # ★ Model 层 — 数据与业务逻辑 │ ├── recorder.h/cpp # 录制 / 播放模型(FFmpeg 编解码) │ └── dxgicapture.h/cpp # DXGI 硬件加速屏幕捕获 ├── view/ # ★ View 层 — UI 界面 │ ├── mainwindow.h/cpp # 主窗口(暗黑主题,手写布局) │ └── previewwidget.h/cpp # 实时预览组件 ├── docs/ # 项目文档 │ ├── 需求文档.md │ ├── 设计文档.md │ └── 项目管理文档.md ├── demo/ # 演示素材 └── x64/ # 编译输出(debug/release) 架构图 ┌──────────────────────────────────────────────────────┐ │ 主线程 (UI) │ │ ┌──────────┐ 抓屏定时器 ┌───────────────┐ │ │ │ MainWindow│◄───────────│ PreviewWidget │ │ │ │ (控制器) │ QTimer │ (预览显示) │ │ │ └────┬─────┘ └───────────────┘ │ │ │ 信号/槽 (QueuedConnection) │ ├───────┼───────────────────────────────────────────────┤ │ │ 工作线程 (Worker) │ │ ┌────▼─────┐ 编码 ┌──────────┐ 解码 ┌────────┐ │ │ │ Recorder │───────►│ MP4 文件 │◄───────│ Recorder│ │ │ │ (录制) │ H.264 │ (存储) │ 读取 │ (播放) │ │ │ └──────────┘ └──────────┘ └────────┘ │ └──────────────────────────────────────────────────────┘ 🔧 编译与运行 环境要求 组件 版本 Qt 5.14.2 (MSVC 2017 64bit) 编译器 Visual Studio 2017 (MSVC) FFmpeg 8.1.2 (已内置在项目中) 操作系统 Windows 10/11 x64 编译步骤
1. 克隆或下载项目到本地
2. 用 Qt Creator 打开 ScreenRecorder.pro
3. 配置编译套件为 Desktop Qt 5.14.2 MSVC2017 64bit
4. 关闭 Shadow Build(项目 → 构建设置 → 取消勾选 Shadow build)
5. 编译运行(Ctrl+R)
⚠️ 注意:FFmpeg DLL 会在编译后自动拷贝到 x64/debug/(或 x64/release/)。 如果运行时提示缺少 DLL,检查 ffmpeg-8.1.2/ffmpeg-8.1.2.pri 中 DESTDIR 配置是否正确。
⌨️ 快捷键 快捷键 功能 Ctrl+R 开始/停止录制 Space 播放/暂停 ← → 快退/快进 5 秒 Esc 停止播放 📝 编码规范 注释风格:Doxygen(@brief @param @return) 代码规范:C++17,智能指针管理对象生命周期 文件头:每个源文件包含 @file @brief @details 注释 架构:严格遵守 MVC 分层,Model 不依赖 View 跨线程通信:统一使用 Qt::QueuedConnection 📄 许可证 本项目仅供学习交流使用。FFmpeg 遵循 LGPL/GPL 协议,商业使用请遵守相关许可条款。
📚 相关文档 需求规格说明书 系统设计文档 项目管理文档