BlackHole 完整教程:3 步打通 macOS 应用间音频零延迟传输
【免费下载链接】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
在 macOS 上做直播、开网课或录屏时,你多半撞见过这样一个瞬间:想把 Spotify、浏览器或 Logic Pro 里的声音送给会议软件、或者录进文件,却发现系统里根本没有"A 应用把声音交给 B 应用"这条路。BlackHole 就是一枚macOS 音频环回驱动(virtual audio loopback driver):它在系统内部开出一条虚拟声卡通道,让任意应用能把音频直接"投递"给另一个应用,全程零额外延迟。
🗺️ 先用 30 秒看懂它到底是什么
很多人第一眼以为它是某个带界面的 App,其实相反——它不占桌面、不进「应用程序」文件夹,只以一个虚拟音频设备的身份安静地待在系统里。你唯一会"看见"它的地方,是Audio MIDI Setup、Sound Preferences和各种音频软件的输入/输出下拉列表。
它真正值钱的,是下面三个"零":
- 零额外延迟:驱动层不叠加缓冲延迟,传声几乎是实时的;
- 零内核扩展:不用装 kernel extension、不改系统安全策略,安装后重启 CoreAudio 即可用;
- 零成本:GPLv3 开源,从 2 声道到 256 声道全免费。
能力上限也相当宽:采样率覆盖8kHz–768kHz(含 44.1kHz、48kHz、96kHz、192kHz 等),兼容macOS 10.10 及以上,且同时支持Intel 与 Apple Silicon。
装哪个版本,看你的声道需求:
| 版本 | 声道数 | 适合谁 |
|---|---|---|
blackhole-2ch | 2 | 会议共享、播客、日常录音(多数人首选) |
blackhole-16ch | 16 | DAW 多轨分轨、专业制作 |
blackhole-64ch | 64 | 大型多轨工程 |
小贴士:声道不是越多越好。高声道 + 高采样率会吃资源,日常用途 2ch 就足够。
🚀 最短路径装好它
三条路任选,新手走第一条即可。
路径一:官方安装包(.pkg)
- 下载对应声道版本的安装包;
- 先关掉所有正在运行的音频应用;
- 双击按提示装完,按提示重启系统。
路径二:Homebrew(命令行友好)
brew install blackhole-2ch # 日常 2 声道 brew install blackhole-16ch # 专业 16 声道 brew install blackhole-64ch # 高级 64 声道路径三:源码构建(想改参数的人)
git clone https://gitcode.com/gh_mirrors/bl/BlackHole用 Xcode 打开工程编译后,把生成的BlackHoleXch.driver放进/Library/Audio/Plug-Ins/HAL,再执行下面命令让 CoreAudio 重新识别:
sudo killall -9 coreaudiod装完去哪确认?打开Audio MIDI Setup→Audio Devices,左侧列表里应能看到 BlackHole(例如 16 ins / 16 outs)。如果没出现,多半是上面那步coreaudiod没重启,或驱动没落进/Library/Audio/Plug-Ins/HAL。
如上图,右侧可以查看/调整它的Format(采样率 + 声道 + 32-bit Float)、Channel Volume与各通道音量。把 Master 与各通道都拉到顶,是排查"没声音"的第一步。
🎧 主线跑通:让"电脑的声音"真正流动起来
整个使用逻辑其实只有两个动作——发送端把输出指给 BlackHole,接收端把输入指给 BlackHole。下面以"一边听、一边把系统声音送给录音/会议软件"这条最常见的主线走完整:
- 发送端:在你想分享声音的应用(或系统默认输出)里,把输出设备设为
BlackHole; - 接收端:在会议软件或 DAW 里,把输入设备设为
BlackHole,通道对齐即可收到; - 想边听边传:单独把输出指给 BlackHole 时你自己就听不见了。这时新建一个Multi-Output 设备,把Built-in Output(真实喇叭)和BlackHole一起加进去,并把Built-in Output设为时钟源、排第一,其余设备勾选 drift correction。这样声音同时进你耳朵和 BlackHole。
这条主线通了之后,剩下的玩法只是"换发送端/接收端":
- 直播垫音乐:播放器输出 → BlackHole → 推流软件输入,观众能听到你的歌单;
- 网课/录屏抓系统音:Multi-Output 里把系统音同时送进 DAW 的 BlackHole 输入轨,边看边录;
- DAW 多轨分轨:用 16ch/64ch,让不同应用各占一段声道,一个工程里各收各的;
- 自动化音频回路:脚本或测试工具把信号从一端写进 BlackHole,再从另一端读回做校验。
🧩 三个编译开关,把它调成你想要的样子
BlackHole 的"身体参数"都藏在预编译常量里,构建时通过GCC_PREPROCESSOR_DEFINITIONS注入即可(详见 BlackHole/BlackHole.c 中的常量定义):
xcodebuild \ -project BlackHole.xcodeproj \ GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS \ kNumber_Of_Channels=8 \ kSampleRates="44100,48000" \ kLatency_Frame_Size=512'| 常量 | 作用 | 建议 |
|---|---|---|
kNumber_Of_Channels | 声道总数 | 按需 2/16/64,越高越吃资源 |
kSampleRates | 允许的采样率(逗号分隔) | 例如"44100,48000" |
kLatency_Frame_Size | 驱动内部处理缓冲帧数 | 默认 1024;高声道可调大更稳 |
还有一个不太起眼但很实用的功能——镜像设备(Mirror Device):通过kDevice2_*一组常量,可以让系统里出现第二个 BlackHole,并且把第一个做成"只有输入"、第二个做成"只有输出"。当某个应用只认输入或只认输出时,这种"一拆为二"的配置能省很多事。
想自己打包/签名/公证一个可分发的安装包,可以直接看仓库里现成的 CI 脚本 Installer/create_installer.sh;不想装回去时,Uninstaller/create_uninstaller.sh 提供了对应流程。
🚧 翻车自救手册(按症状对号入座)
症状 A:设备压根不出现
- 先确认驱动真的落进了
/Library/Audio/Plug-Ins/HAL/BlackHoleXch.driver(注意是根目录的/Library,不是~/Library); - 重启 CoreAudio:
sudo killall -9 coreaudiod; - 确认 macOS 版本 ≥ 10.10。
症状 B:设备在,但就是没声音
- 查System Preferences → Security & Privacy → Privacy → Microphone,给接收端应用(DAW 等)开麦克风权限;
- 到Audio MIDI Setup把 BlackHole 的输入/输出 Master 与各通道都拉满;
- 若用了 Multi-Output,记得Built-in Output必须启用且排在第一位。
症状 C:多输出/Aggregate 用了几分钟后爆音、卡顿
- 典型是时钟漂移:除了时钟源(Master/Primary)之外,其余每个设备都要勾选 drift correction;
- 个别 App 对 Multi-Output 天生不友好,已知如 Apple Podcasts、Apple Messages、HDHomeRun,这类场景建议改走系统默认输出。
安装脚本本身报错时,可尝试把
.pkg从「下载」挪到「桌面」再双击(或反过来),部分系统版本在这个位置装不上。
📚 想再往深里看,去哪找
- 功能、安装/卸载、用户与开发者指南:README.md
- 各版本更新记录:CHANGELOG.md(当前 0.6.1,安装包已改为按 Apple 建议强制重启)
- 构建与打包脚本:Installer/
- 工程与编译配置:BlackHole.xcodeproj/
动手顺序建议:先装 2ch 把"发送端 → BlackHole → 接收端"这条主线跑通,再上 Multi-Output 解决"边听边传",最后才考虑多声道和自定义构建。三步走完,你就能在 macOS 上自由地把声音从任意应用,零延迟地送到任何另一个应用了。
【免费下载链接】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),仅供参考