# ScreenCapture **Repository Path**: ctsky809/ScreenCapture ## Basic Information - **Project Name**: ScreenCapture - **Description**: Qt+FFmpeg录屏录音 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2020-05-17 - **Last Updated**: 2025-01-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 使用VS2015打开项目,运行就能生出视频。 * 录屏功能支持:开始,暂停,结束。 * 使用Qt+C++封装FFmpeg API,没有使用废弃的FFmpeg API。 * 主线程:Qt GUI线程,以后可接入录屏UI。 * MuxThreadProc:复用线程,启动音视频采集线程。打开输入/输出流,然后从fifoBuffer读取帧,编码生成各种格式视频。 * ScreenRecordThreadProc:视频采集线程,从输入流采集帧,缩放后写入fifoBuffer。 * SoundRecordThreadProc:音频采集线程,从输入流采集样本,重采样后写入fifoBuffer。 ### 注意 1. 如果电脑没有麦克风的话,音频会打开失败,导致程序退出。 2. 音视频采集的帧数实际上是达不到25帧的(具体1秒能采集多少帧据说看机器配置),所以录制10秒的视频可能只有6秒,也就是机器1秒只能采集15帧,因为在帧率固定的情况下,后面的帧往前补充了,所以你也能感觉到视频加快了。解决这个问题可以考虑插帧法,保证帧数足够。网上搜了一下没有找到相关的算法,以后有机会再看看FFmpeg源码是怎么实现的,不过可能有点难:)