屏幕录制这件事,看起来只是"把画面抓下来存成文件",真正动手写才会发现坑一个接一个:桌面帧怎么抓、抓多快、抓到的原始数据怎么编码、编码和采集怎么并行不互相拖死、音视频怎么对齐、录制中途改分辨率怎么办。这套课程拿 Qt 做界面、拿 OBS 的源码当参照,把这些问题一个个摆出来解决。它不适合完全没写过 C++ 的人,但如果你会写类、用过指针和容器,却一直没搞明白"一个能跑的桌面软件"是怎么拼起来的,这门课的缺口正好对得上。

先确认你缺的是哪一块

三类人看这门课收益差别很大。第一类是会 C++ 语法但没做过 GUI 项目的人——你能写算法题,却不知道信号槽怎么把按钮和后台线程连起来,不知道 Qt 的事件循环和采集线程是什么关系。第二类是做过 Windows 桌面开发但没碰过音视频的人——你熟悉窗口和控件,但面对像素格式、帧率、编码器参数就发懵。第三类是照着 OBS 用但没读过它代码的人——你会配场景和源,却没想过一个"源"在代码里到底是个什么对象、它的采集回调什么时候被触发。

如果你属于"三样都缺"的状态,建议先把 C++ 的 RAII、智能指针和 Qt 的基本控件过一遍再进来,否则前半段会一直卡在编译错误上,而不是卡在真正有价值的架构问题上。

几个绕不过去的技术节点

  • 桌面采集的几种取帧方式各自适用什么场景,为什么有的方案在窗口最小化后就抓不到内容。
  • 采集线程与渲染/编码线程如何解耦,帧队列堆积时应该丢帧还是降速。
  • 原始像素数据到编码器之间要经过哪些转换,转换开销通常出在哪一步。
  • OBS 源码里"源—场景—输出"这层抽象为什么值得抄,自己写小工具时能不能简化掉。
  • Qt 的信号槽跨线程传递时默认是直连还是队列连接,用错会导致什么问题。

这些问题不是靠看一遍就懂的,每一个都建议你暂停视频,自己在项目里改一行参数、跑一次、看结果变化。

配套资料怎么用

随课的笔记适合当"复盘索引"而不是"替代视频"。比较有效的节奏是:看完一节先别翻笔记,自己回想刚才那个采集循环的关键几行写在哪、为什么放那;想不起来再翻笔记对照。每两到三节做一次这样的小结,比一口气看完再回头整理有效得多。

资料里的源码部分不要只读,要动手删。删掉一个模块看看编译报什么错、运行时哪里先崩,这比顺着看一遍更能暴露你对模块依赖的真实理解程度。复现 Demo 时也尽量别照抄目录结构,按自己的理解重新组织一遍模块划分。

看完应该能回答的问题

  • 如果录制出来的视频颜色明显偏了,你会从采集、转换、编码这三段里的哪一段开始排查?依据是什么?
  • 录制 1080p60 时 CPU 占用过高,你有哪些可调的参数,各自的代价是什么?
  • 要把这个录制工具从"能录"改成"能录指定窗口并跟随窗口移动",需要动哪几个类?
  • OBS 那种插件化的源设计,用在你自己的小工具上会不会过度设计?边界在哪?

能答上其中三个,说明你是真的把工程结构吃进去了,而不只是把视频过了一遍。答不上来的那部分,就是下一轮该补的地方。


本套C++ Qt OBS源码屏幕录制软件开发视频教程 视频+资料都有~

课程推荐

《C++ Qt OBS源码屏幕录制软件开发视频教程》本套C++ Qt OBS源码屏幕录制软件开发视频教程 视频+资料都有~【技能收获】学完可掌握:核心实战技能、项目驱动学习。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序学习,先打基础再进入综合实战章节;每完成 2~3 节可结合笔记整理一份学习小结,最终尝试独立复现一套完整 Demo 写入个人作品集。【就业发展】可面向岗位:Linux 运维工程师、SRE、云计算工程师、DevOps 工程师。云原生与自动化运维仍是企业 IT 刚需方向,认证 + 实战项目组合能显著提升面试通过率,适合向中高级运维或架构岗进阶。 若你已有一定编程或运维基础,本课程可帮助你在现有技能栈上快速叠加热门方向能力,提升求职时的项目说服力与薪资谈判空间。

视频目录(66 节)

*   1 课程介绍.mp4

*   2 obs源码下载与编译环境准备.mp4

*   3 开始编译obs源码.mp4

*   4 obs录制功能使用介绍.mp4

*   5 obs启动依赖项说明.mp4

*   6 c++cmake开源项目编译技巧讲解.mp4

*   7 obsc++vs2019工程介绍.mp4

*   8 obs程序启动main函数分析(一).mp4

*   9 obs程序启动main函数分析(二).mp4

*   10 obs初始化流程概述.mp4

*   11 obs初始化之插件加载.mp4

*   12 音频设置与初始化源码分析.mp4

*   13 音频线程创建源码分析.mp4

*   14 视频设置初始化与线程创建.mp4

*   15 obs线程库pthread-win32介绍与编译.mp4

*   16 obs初始化过程总结(一).mp4

*   17 obs初始化过程总结(二).mp4

*   18 obs初始化过程总结(三).mp4

*   19 从录制按钮开始.mp4

*   20 继续聊聊obs输出模式.mp4

*   21 录制软件功能点分析.mp4

*   22 obs为什么不使用ffmpeg命令行来录制.mp4

*   23 obs采集模块代码介绍.mp4

*   24 窗口采集方式与源码概述.mp4

*   25 显示器采集方式与源码概述.mp4

*   26 视频编码源码分析:点击开始录制按钮后发生了什么.mp4

*   27 obsx264编码模块源码分析.mp4

*   28 结束录制做了哪些操作.mp4

*   29 音频设备初始化及音频采集线程的创建.mp4

*   30 obs模块加载深入了解.mp4

*   31 音频编码线程源码分析.mp4

*   32 DesktopRec需求说明与项目创建.mp4

*   33 C++obs开发环境配置介绍.mp4

*   34 DesktopRec界面初步设计.mp4

*   35 obs封装类初始化功能实现(一).mp4

*   36 obs封装类初始化功能实现(二).mp4

*   37 obs封装类初始化功能实现(三).mp4

*   38 转场特效、场景的创建(一).mp4

*   39 转场特效、场景的创建(二).mp4

*   40 创建显示器采集源与属性查找.mp4

*   41 设置输出模式.mp4

*   42 ffmpeg输出参数设置.mp4

*   43 初步实现桌面采集录制功能.mp4

*   44 Qt实现录制时长实时显示.mp4

*   45 Qt自定义标题栏(一):界面布局.mp4

*   46 Qt自定义标题栏(二):实现拖动、关闭、最小化.mp4

*   47 Qt自定义标题栏(三):背景样式设置、增加控件图标.mp4

*   48 完成主界面的控件添加与布局设计.mp4

*   49 Qt实现圆角窗口.mp4

*   50 修改录制主界面样式表.mp4

*   51 Qt实现界面动态换肤.mp4

*   52 实现指定应用窗口进行录制.mp4

*   53 为什么录制的窗口是黑色的.mp4

*   54 分离场景、视频源、音频的创建.mp4

*   55 实时查找应用窗口和显示器桌面.mp4

*   56 初步实现窗口录制与桌面录制的切换.mp4

*   57 解决桌面录制时可能crash的bug.mp4

*   58 给DesktopRec添加系统托盘.mp4

*   59 给托盘添加菜单以及实现菜单动作.mp4

*   60 修改视频输出名字和任务栏图标.mp4

*   61 添加设置对话框.mp4

*   62 封装配置文件解析类.mp4

*   63 录制类根据配置进行录制.mp4

*   64 程序发布与项目总结.mp4

*   65 obs课程补充说明.mp4

*   66 obs课程总结.mp4