ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

BlackHole macOS 音频环回指南:系统声音录制与应用间共享的 4 种免费用法

BlackHole macOS 音频环回指南:系统声音录制与应用间共享的 4 种免费用法

BlackHole macOS 音频环回指南:系统声音录制与应用间共享的 4 种免费用法

【免费下载链接】BlackHoleBlackHole is a modern macOS audio loopback driver that allows applications to pass audio to other applications with zero additional latency.项目地址: https://gitcode.com/gh_mirrors/bl/BlackHole

BlackHole 是一款免费开源的 macOS 音频环回驱动,它在系统里注册一个虚拟音频设备,让一个应用输出的声音能被另一个应用作为输入接收,驱动本身不引入额外延迟。它适合需要录制系统声音、在视频会议中共享电脑音频、或在数字音频工作站里做多声道路由的人,完整上手过程就是选版本、装驱动、在两处设置里改设备。

一分钟认识 BlackHole:应用之间的一块虚拟声卡

BlackHole 的定位是 Core Audio HAL 层的虚拟设备,作用相当于系统内部的一块声卡:任何应用把输出指向 BlackHole,另一个把输入指向 BlackHole 的应用就能收到这段音频。它不加载内核扩展、不修改系统安全设置,Intel 与 Apple Silicon 均有对应构建,安装后在「音频MIDI设置」和系统声音设置中与真实声卡并列出现。常用参数如下:

参数数值
声道数官方构建提供 2 / 16 / 64 声道,源码可编译 128 / 256 声道
采样率上限768kHz,涵盖 44.1 / 48 / 96kHz 等常用档位
位深固定 32-bit Float,Core Audio 系统级原生格式
驱动延迟0,不引入额外帧延迟
系统要求macOS 10.10(Yosemite)及以上
开源协议GPLv3,个人使用免费

2 声道版本安装方法与设备验证

用安装包安装

  1. 先关闭所有正在使用音频的应用:播放器、数字音频工作站、会议工具。
  2. 双击安装包按提示完成,全程只需一路「继续」。
  3. 0.6.1 及之后的版本会按 Apple 建议强制重启一次系统,安装后按提示重启,驱动才会完全生效。

用 Homebrew 安装

brew install blackhole-2ch # 2 声道,日常共享与录制够用 brew install blackhole-16ch # 16 声道,适合多轨与专业场景 brew install blackhole-64ch # 64 声道,适合高级路由需求

验证只需一步:打开「音频MIDI设置」,在左侧设备列表里看到 BlackHole 设备即安装成功。看不到时,重启系统或到下文速查表对照排查。

典型音频需求速查:4 种用法的配置与生效判断

视频会议中共享系统声音

  1. 把音源应用(音乐播放器等)的输出设备设为 BlackHole。
  2. 在 Zoom、Teams 的输入设备下拉框里选择 BlackHole。
  3. 播放要共享的内容。
  • 生效判断:对方能听到电脑音频。若只有自己本地有声,先检查音源应用的输出是否仍指向内置扬声器。

一边听一边录制系统声音

  1. 在「音频MIDI设置」中右键新建「多输出设备」。
  2. 把「内置输出」和 BlackHole 加入该设备,将「内置输出」设为时钟源,为 BlackHole 勾选漂移校正。
  3. 系统输出改为这个多输出设备;在 GarageBand 或 Logic Pro 里把输入设为 BlackHole 的 1-2 声道。
  • 生效判断:外放有声音的同时,DAW 轨道上波形正常跳动。

多声道分离的多轨录制

  1. 使用 16 或 64 声道版本,发送端 DAW 把不同内容输出到不同声道对,如 1-2 主音轨、3-4 伴奏轨、5-6 效果轨。
  2. 接收端 DAW 为每对声道新建一条轨道,并把轨道输入绑定到对应声道。
  • 生效判断:播放同一份素材时,各轨道波形同时出现且互不串音。

应用间音频路由与自动化测试

  1. 发送端与接收端应用都固定选择 BlackHole,用脚本播放标准测试信号。
  2. 接收端应用捕获 BlackHole 输入,检查电平与时长是否符合预期。
  • 生效判断:连续多次执行结果一致,波形稳定、无漂移与丢帧。

镜像设备与自定义构建:输入输出分离,调整声道与采样率

BlackHole 默认带一个隐藏的镜像设备。修改编译时常量后,可以把一个逻辑设备拆成两个可见设备:一个只含输入、一个只含输出,适合需要把输入和输出分开管理的场景:

常量原始设备镜像设备
kDevice_IsHidden / kDevice2_IsHiddenfalsefalse
kDevice_HasInput / kDevice2_HasInputtruefalse
kDevice_HasOutput / kDevice2_HasOutputfalsetrue

声道数、采样率、驱动内缓冲帧数同样在编译时调整:

参数作用常用值
kNumber_Of_Channels声道数量2 / 8 / 16 / 64
kSampleRates允许的采样率,多个用英文逗号分隔44100,48000,96000
kLatency_Frame_Size驱动内缓冲帧数,可让音频最多延迟 65536 帧0(默认)

传参构建即可:

xcodebuild -project BlackHole.xcodeproj GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS kNumber_Of_Channels=8 kSampleRates="44100,48000"' # 构建 8 声道、双采样率的自定义版本

两点注意:高声道数不要与高采样率同时使用,CPU 负担会明显上升;部分应用无法识别很高的声道数,按需求留有余量。

出问题时查这里:4 类常见症状的对照表

现象常见原因处理
设备列表不显示 BlackHole驱动未落到 /Library/Audio/Plug-Ins/HAL/ 目录;CoreAudio 状态异常重装并重启系统;或在终端执行sudo killall -9 coreaudiod重启 CoreAudio
传输延迟或卡顿声道数、采样率开太高;应用自身缓冲区过小;其他应用占用 CPU 过多降到 2 声道、48kHz 复测;关闭占 CPU 的应用
多输出设备无声内置输出未启用或未排在设备列表顶部;漂移校正未勾选;音频应用未重启让内置输出成为第一项兼时钟源,为 BlackHole 勾选漂移校正,重启所有音频应用
个别应用收不到多输出Apple Podcasts、Apple Messages、HDHomeRun 存在已知不兼容这几类应用改走系统默认输出,其余内容经 BlackHole 路由

小结

多数人用官方 2 声道版本即可覆盖共享与录制需求;声道不够时,一条 xcodebuild 命令就能编译出自定义版本。更多细节看项目内的 README.md、版本记录 CHANGELOG.md 以及安装包构建脚本 Installer/create_installer.sh。

【免费下载链接】BlackHoleBlackHole is a modern macOS audio loopback driver that allows applications to pass audio to other applications with zero additional latency.项目地址: https://gitcode.com/gh_mirrors/bl/BlackHole

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

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进