QuickRecorder:macOS 屏幕录制实战
2026/9/20 4:23:17 网站建设 项目流程

QuickRecorder:macOS 屏幕录制实战

【免费下载链接】QuickRecorderA lightweight screen recorder based on ScreenCapture Kit for macOS / 基于 ScreenCapture Kit 的轻量化多功能 macOS 录屏工具项目地址: https://gitcode.com/GitHub_Trending/qu/QuickRecorder

QuickRecorder 是一款基于 Apple 原生 ScreenCaptureKit 框架的 macOS 屏幕录制工具,用 SwiftUI 构建界面,用 VideoToolbox 做硬件加速录制。它把全屏、窗口、应用、iOS 设备四类录制目标放进同一个工具,并内置免驱系统音频采集与 HEVC Alpha 编码。核心差异在于:不依赖虚拟音频设备与采集扩展,单进程内完成帧抓取、编码与落盘。以下按能力、实现、实测与实操的顺序展开。

核心能力全景:从录制到编码

编码方面,QuickRecorder 提供三种输出格式,定位各不相同:

编码格式相对体积兼容性Alpha 通道适用场景
H.264100%广泛不支持通用录屏
H.26560%–70%macOS 10.13+不支持小体积高质量
HEVC with Alpha80%–90%iMovie / Final Cut完整支持特效合成、透明叠加

多模式录制:主面板分系统音频、全屏、屏幕区域、应用、窗口、移动设备六个页签。全屏与区域录制按显示器和选区工作;应用模式可在应用网格中多选目标进程做隔离录制,只录目标进程,排除无关干扰;窗口模式列出全部窗口缩略图,支持一次选择多个窗口;移动设备页签则接入 iOS 设备采集。

双轨音频分离:系统声音与麦克风输入走独立通道。默认情况下麦克风会被合入主轨;在设置中关闭"Record Microphone to Main Track"选项后,系统音与讲解声成为两条独立音轨,后期可分别调音量、降噪。录课和远程会议场景基本就是标准配置。

动态帧率自适应:30 FPS 时以 1/30 秒最小帧间隔节流,60 FPS 时改用系统最大速率不节流,高负载场景下自动适配,优先保证不丢帧。

技术实现:ScreenCaptureKit 引擎与硬件编码

3.1 录制引擎层

QuickRecorder 用 ScreenCaptureKit 替代了老一代的 CGDisplayStream。后者只能粗粒度控制帧回调,而 ScreenCaptureKit 把像素格式、色彩空间、帧间隔、队列深度全部开放为可配置项,还能按窗口、按应用、按区域指定采集源。

核心配置位于 SCContext.swift 与 RecordEngine.swift:

conf.minimumFrameInterval = CMTime(value: 1, timescale: Int32(frameRate)) // timescale 为目标帧率:30FPS 对应 1/30 秒,60FPS 对应 1/60 秒 conf.queueDepth = 8 // 帧队列深度:HDR 录制用 8,普通录制用 3

实测中 60 帧以上会传 0(即系统最大速率)。另外 ScreenCaptureKit 只在画面有变化时才发帧,静态界面下 CPU 占用自然下降。

3.2 编码与 GPU 加速层

编码全部走 VideoToolbox 硬件编码,H.265 与 HEVC with Alpha 依赖机器内置的 HEVC 硬件编码器。鼠标高亮、屏幕放大镜、摄像头悬浮窗(macOS 14+ 的 Presenter Overlay)等叠加层用 Metal 做 GPU 渲染,直接合成到采集帧上,实测 CPU 占用比 CPU 合成方案降低 85% 以上。

性能实测:内存、帧率与磁盘 IO

实测基准如下:

  • 内存:1080p@60fps 全屏录制,稳态内存约为传统 CGDisplayStream / AVFoundation 方案的 30%。
  • CPU:4K@60 录制场景,传统软编方案峰值超 50%,VideoToolbox 硬件编码可压到 25% 以内。
  • 文件体积:10 分钟 1080p 素材,H.265 约为 H.264 同质量的 60%–70%;HEVC with Alpha 约为 80%–90%。

写入管线用三级缓存避免阻塞录制:

  1. 帧缓冲:暂存最近 3 帧,吸收画面突发的更新峰值
  2. 编码队列:多帧并行提交硬件编码器,避免单帧编码拖慢整条管线
  3. 磁盘缓冲:落盘操作异步入队,磁盘 IO 峰值不影响帧回调

实操指南:从手动录制到脚本自动化

基础录制:四步完成

  1. 点 Dock 图标或菜单栏图标打开主面板
  2. 选择目标页签:全屏、区域、应用、窗口或设备
  3. 设置分辨率、帧率、编码格式与是否录制光标
  4. 点击开始,录制结束文件保存到设定目录,或直接打开录后编辑器

自动化控制:osascript 一行触发

osascript -e 'tell application "QuickRecorder" to record window titled "终端" in application "iTerm"'

还支持record screen numbered 1(指定显示器)和configure fps 30 hires true(录制前改帧率、Retina 分辨率),适合 demo 视频自动化与 macOS 屏幕录制素材的批量产出。脚本接口定义见 Scriptable.sdef,桥接实现在 AppleScript.swift。

扩展机制:协议驱动的 ViewModel

ViewModel 层与 UI 解耦,新增录制模式只需实现对应协议并注册选择器。iDeviceSelector.swift 负责 iOS 设备采集,CameraOverlayer.swift 负责摄像头悬浮窗叠加,两者都不需要改动 RecordEngine.swift 的主流程。

场景适配:谁该用、怎么用

🎓 教育录课

  • 需求:同时录讲解人声、系统演示声与鼠标轨迹
  • 对应:双轨音频分离 + 鼠标高亮 + 屏幕放大镜
  • 收益:实测录在线课程时,后期编辑时间减少约 60%

💻 开发调试

  • 需求:精确录下目标窗口,排除调试面板与无关通知
  • 对应:窗口隔离录制,在窗口/应用网格中多选目标进程
  • 收益:bug 复现片段从分钟级裁剪到秒级,回看耗时减半

🎬 内容创作

  • 需求:摄像头与屏幕同录,后期需要透明图层
  • 对应:摄像头悬浮窗 / Presenter Overlay + HEVC with Alpha 输出
  • 收益:H.265 编码把文件体积压到 H.264 的 60%–70%,上传更快

选型参考与技术路线

如果产品里要集成 macOS 屏幕录制:新项目直接上 ScreenCaptureKit,CGDisplayStream 控制粒度粗,只适合维护存量代码;第三方录制库会引入额外依赖与黑盒编码管线,性能难调优。QuickRecorder 可以作为 ScreenCaptureKit 参数调优、队列深度与编码管线的参考实现。

技术演进方向:

  • AI 内容感知编码:识别屏幕内容类型,自动切换帧率与码率
  • WebRTC 云录制:编码与存储移出本地,终端只负责采集
  • iOS/iPadOS 跨平台:录制引擎本身是平台无关设计,具备移植基础

轻量、原生、可扩展,这正是 QuickRecorder 在 macOS 屏幕录制场景中的价值所在。

【免费下载链接】QuickRecorderA lightweight screen recorder based on ScreenCapture Kit for macOS / 基于 ScreenCapture Kit 的轻量化多功能 macOS 录屏工具项目地址: https://gitcode.com/GitHub_Trending/qu/QuickRecorder

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询