# FrameCapture **Repository Path**: AndroidCoderPeng/FrameCapture ## Basic Information - **Project Name**: FrameCapture - **Description**: 画面采集+FFmpeg编码,Tcp传输 - **Primary Language**: C++ - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-08 - **Last Updated**: 2026-02-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FrameCapture 一个基于Qt和OpenCV的屏幕帧捕获与H264编码传输系统。 ## 项目简介 FrameCapture是一个实时屏幕帧捕获、编码和传输的解决方案。该项目使用Qt框架构建图形界面,结合OpenCV进行图像处理,并通过自定义的H264编码器将视频流传输到TCP客户端。 ## 功能特性 - **实时帧捕获**:支持启动捕获和单帧捕获两种模式 - **H264视频编码**:高效的H264视频压缩 - **TCP数据传输**:支持TCP服务器模式,向客户端传输编码后的视频流 - **实时预览**:在主窗口显示捕获的帧画面 - **灵活控制**:支持启动、停止帧捕获操作 ## 系统架构 ### 核心组件 1. **FrameCapture** (`framecapture.cpp/hpp`) - 帧捕获核心类 - 提供 `start()`、`captureOnce()`、`stop()` 方法控制捕获流程 - 负责从源获取图像帧 2. **FrameEncoder** (`frameencoder.cpp/hpp`) - H264视频编码器 - 接收原始帧并进行H264编码 - 处理视频压缩和封装 3. **MainWindow** (`mainwindow.cpp/hpp`) - 主窗口界面 - 管理TCP服务器连接 - 处理客户端连接和视频流传输 - 集成实时预览功能 4. **PreviewWorker** (`previewworker.cpp/hpp`) - 预览图像处理工作类 - 负责帧数据的预览渲染 ## 环境要求 - Qt 5.x 或更高版本 - OpenCV 库 - 支持C++11的编译器 - CMake 或 qmake 构建系统 ## 编译说明 1. 确保已安装Qt和OpenCV开发环境 2. 使用qmake生成项目文件: ```bash qmake FrameCapture.pro ``` 3. 编译项目: ```bash make ``` ## 使用方法 1. 运行程序后,主窗口将显示预览界面 2. 点击"开始监听"按钮启动TCP服务器 3. 客户端连接到服务器后,将自动开始传输视频流 4. 使用控制按钮进行帧捕获操作 ## 文件说明 | 文件 | 说明 | |------|------| | `main.cpp` | 程序入口 | | `mainwindow.ui` | Qt Designer界面文件 | | `framecapture.cpp/hpp` | 帧捕获实现 | | `frameencoder.cpp/hpp` | 编码器实现 | | `previewworker.cpp/hpp` | 预览工作类 | | `mainwindow.cpp/hpp` | 主窗口实现 | ## 许可证 本项目遵循 LICENSE 文件中规定的开源许可证。