


output_20260909_173642
觉得有用,就请您帮忙点赞转发收藏吧,您的鼓励是我创作的动力,多谢看官了。 由于能力水平有限,文中的错误或不严谨的地方在所难免,还请批评指正。
环境:Windows 10/11,FFmpeg 5.x/6.x/7.x(推荐 gyan.dev 的 full 构建)。 本文系统讲解在 Windows 平台用 FFmpeg 做屏幕录制的完整方案,核心结论: 技术选型:gdigrab(GDI,系统自带、免装)采视频 + dshow/wasapi采音频是最通用组合;高性能场景用 ddagrab(DXGI)+ GPU 硬件编码。 音视频组合:gdigrab只采视频,必须搭配独立音频输入,多路音频用 amix混合或保留多音轨。 编码策略:实时采集用 ultrafast + crf 23防掉帧;CPU 瓶颈切 NVENC/QSV/AMF;MP4 加 -movflags +faststart。 完整实现:给出命令行与 C API 两种可运行示例,覆盖设备枚举、采集、编码、封装、优雅停止全流程。 问题排查:音视频同步、CPU 占用、麦克风无声、文件体积、MP4 损坏。
目录
一、技术选型与原理
1.1 Windows 采集方式对比
1.2 架构
二、环境准备
三、命令行实战
3.1 基础录屏(无声音)
3.2 区域 / 窗口
3.3 录屏 + 麦克风
3.4 录屏 + 麦克风 + 系统声音(混合为一条音轨)
3.5 保留双音轨(不混合,建议 MKV)
四、编码优化与硬件加速
4.1 软编(libx264)参数
4.2 硬件编码(大幅降 CPU)
4.3 终极性能:ddagrab + GPU 全链路
4.4 减少启动延迟与丢帧
五、C/C++ API 完整实现
5.1 打开 gdigrab 输入
5.2 初始化 H264 编码器
5.3 主循环:采集 → 编码 → 写入






