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 声道版本安装方法与设备验证
用安装包安装
- 先关闭所有正在使用音频的应用:播放器、数字音频工作站、会议工具。
- 双击安装包按提示完成,全程只需一路「继续」。
- 0.6.1 及之后的版本会按 Apple 建议强制重启一次系统,安装后按提示重启,驱动才会完全生效。
用 Homebrew 安装
brew install blackhole-2ch # 2 声道,日常共享与录制够用 brew install blackhole-16ch # 16 声道,适合多轨与专业场景 brew install blackhole-64ch # 64 声道,适合高级路由需求验证只需一步:打开「音频MIDI设置」,在左侧设备列表里看到 BlackHole 设备即安装成功。看不到时,重启系统或到下文速查表对照排查。
典型音频需求速查:4 种用法的配置与生效判断
视频会议中共享系统声音
- 把音源应用(音乐播放器等)的输出设备设为 BlackHole。
- 在 Zoom、Teams 的输入设备下拉框里选择 BlackHole。
- 播放要共享的内容。
- 生效判断:对方能听到电脑音频。若只有自己本地有声,先检查音源应用的输出是否仍指向内置扬声器。
一边听一边录制系统声音
- 在「音频MIDI设置」中右键新建「多输出设备」。
- 把「内置输出」和 BlackHole 加入该设备,将「内置输出」设为时钟源,为 BlackHole 勾选漂移校正。
- 系统输出改为这个多输出设备;在 GarageBand 或 Logic Pro 里把输入设为 BlackHole 的 1-2 声道。
- 生效判断:外放有声音的同时,DAW 轨道上波形正常跳动。
多声道分离的多轨录制
- 使用 16 或 64 声道版本,发送端 DAW 把不同内容输出到不同声道对,如 1-2 主音轨、3-4 伴奏轨、5-6 效果轨。
- 接收端 DAW 为每对声道新建一条轨道,并把轨道输入绑定到对应声道。
- 生效判断:播放同一份素材时,各轨道波形同时出现且互不串音。
应用间音频路由与自动化测试
- 发送端与接收端应用都固定选择 BlackHole,用脚本播放标准测试信号。
- 接收端应用捕获 BlackHole 输入,检查电平与时长是否符合预期。
- 生效判断:连续多次执行结果一致,波形稳定、无漂移与丢帧。
镜像设备与自定义构建:输入输出分离,调整声道与采样率
BlackHole 默认带一个隐藏的镜像设备。修改编译时常量后,可以把一个逻辑设备拆成两个可见设备:一个只含输入、一个只含输出,适合需要把输入和输出分开管理的场景:
| 常量 | 原始设备 | 镜像设备 |
|---|---|---|
| kDevice_IsHidden / kDevice2_IsHidden | false | false |
| kDevice_HasInput / kDevice2_HasInput | true | false |
| kDevice_HasOutput / kDevice2_HasOutput | false | true |
声道数、采样率、驱动内缓冲帧数同样在编译时调整:
| 参数 | 作用 | 常用值 |
|---|---|---|
| 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),仅供参考