BlackHole 实战指南:让 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 的声音设置里只有一个"输出"列表,根本没有"把系统声音录下来"的入口。装个屏幕录制软件?那录到的声音和画质、延迟一起打折,还占 CPU。其实这个问题在 macOS 上有个更直接的办法:装一个音频回环驱动(loopback driver),把 A 应用的输出直接"接"到 B 应用的输入上。BlackHole 就是干这件事的,它是 macOS 上的一款免费开源虚拟音频回环驱动,安装后系统里会多出一台"设备",任何应用都可以对它输出声音,也可以从它读取声音,中间不引入额外的驱动延迟。
装一个 BlackHole,等于给系统加了一根看不见的音频线
说清楚它值得装的理由,有三条,每条都对应一个具体场景。
第一,零额外延迟。声音从一个应用传到另一个应用,BlackHole 本身不叠加处理时间。做直播、开视频会议时,"Logic Pro 出声、Zoom 收到"这条链路上没有可感知的滞后。
第二,不碰系统安全机制。它只是一台 HAL 音频设备(macOS 音频框架里的硬件抽象设备),不需要内核扩展,也不要求改系统设置里那些"允许此系统软件"的开关。装完即可用,卸载也只是删一个驱动文件。
第三,通道数可选。它提供 2 通道、16 通道、64 通道三个版本。日常录系统音、开会议,2 通道(立体声)就够;要做多轨录音或同时走好几路音频,16 通道版本把每个通道当成独立线路用。
三步装好,先确认设备出现了
主路线推荐用 Homebrew 装,一条命令的事:
# 安装 2 通道版本(日常使用首选) brew install blackhole-2ch # 需要多轨时用 16 通道或 64 通道 brew install blackhole-16ch brew install blackhole-64ch不想用 Homebrew 的话,也可以从项目主页下载 .pkg 安装包,装之前先关掉所有正在播放声音的应用。
装完打开"音频MIDI设置"(Spotlight 搜 Audio MIDI Setup),左侧设备列表里应该能看到 BlackHole,右侧面板能展开它的各个通道,输入输出音量默认拉满即可。
看到设备就成功了。注意它不会出现在"应用程序"文件夹里,它只存在于声音相关的设置和音频软件的设备列表中,这是正常现象。
场景一:把系统声音录进 GarageBand,同时还能听到
这是最高频的需求:一边从浏览器或播放器出声,一边录进工程,扬声器不能没声。单独把输出切到 BlackHole 的话声音是"哑"的,所以要用 macOS 自带的"多输出设备",让声音同时走扬声器和 BlackHole。
- 打开"音频MIDI设置",点左下角的 +,选"创建多输出设备"。
- 在新设备右侧勾选 BlackHole 和"内置输出"。⚠️ 有一个坑:macOS 要求"内置输出"必须勾选且排在列表最上面,否则多输出设备不工作。
- 右键这个新设备,选"将此设备用于声音输出",系统声音从此双路输出。
- 打开 GarageBand,新建一个音频轨道,把轨道输入源选成 BlackHole,通道选 1-2,打开轨道上的"监听"开关——这时候你能在软件里实时听到系统声音;关掉监听、点红色录制按钮,就是正式录。
- 去播放任意网页音乐或播客,轨道上会出现跳动的电平,录完就是独立的音频文件。
如果只是想录、不需要边听,步骤 2、3 可以跳过,直接把系统输出切到 BlackHole 即可。
场景二:把 Logic Pro 的伴奏实时送进 Zoom
会议软件只认"输入设备",而你的伴奏在 Logic Pro 里是"输出"。BlackHole 正好是中间那根线:
- Logic Pro 菜单 → 环境 → 音频设置,把音频输出(output)改成 BlackHole。
- 新建一个音频轨道,把输出(output)指到 BlackHole 的 1-2 通道。
- 打开 Zoom,进"音频与视频"设置,麦克风选 BlackHole,输入通道选 1-2。
- 在 Logic Pro 里播放,Zoom 里对方听到的就是你的伴奏。
反过来接也一样:任何软件的"输出"和另一软件的"输入"里出现 BlackHole,就可以自由配对。想同时走两路互不干扰的音频时,16 通道版本可以把 1-2 给一条链路、3-4 给另一条,互不串音。
进阶:通道数、采样率、镜像设备怎么选
装好 2 通道版本后,大部分工作发生在"音频MIDI设置"和会议/工程软件的设备下拉框里,不用碰驱动本身。但有几种情况值得调整:
| 配置项 | 怎么选 |
|---|---|
| 通道版本 | 2 通道:录系统音、单路会议;16 通道:多轨录音、多路并行传输;64 通道:大型工程、路由矩阵 |
| 采样率 | 和你要连接的应用保持一致,常见 44.1kHz(CD 标准)或 48kHz(视频/会议标准)。它原生支持 8kHz 到 768kHz 共 12 档,别用高采样率配高通道数,CPU 吃不消 |
| 位深 | 固定 32 位浮点,无需设置,兼容 24 位整数无损 |
| 延迟 | 驱动自身零额外延迟;高通道数下若出现卡顿,可自行编译时调大 kLatency_Frame_Size(最长 65536 帧缓冲) |
还有一招给重度用户:BlackHole 编译时默认带一个隐藏的"镜像设备"。通过编译常量把主设备设成只有输出(kDevice_HasOutput=true,关闭输入),镜像设备设成只有输入(kDevice2_HasInput=true,关闭输出),再各自取消隐藏,就能得到"一台只输出的 BlackHole + 一台只输入的 BlackHole"。这在做推流软件时很实用:用户侧设备列表里只看到干净的输入设备,声音在幕后被路由走。这类定制需要用 Xcode 编译,改的只是头文件里的一组常量。
避坑指南:四个高频问题
现象:设备列表里根本找不到 BlackHole原因:macOS 的声音服务 CoreAudio 可能缓存了旧的设备状态,安装后没有刷新。 解决:在终端重启该服务,设备立刻出现:
# 重启 CoreAudio 声音服务 sudo killall -9 coreaudiod现象:按步骤配好了,但 BlackHole 一点声音都没有原因:最常见的是系统没给录音软件麦克风权限(读取 BlackHole 走的就是这条权限);其次是"音频MIDI设置"里 BlackHole 的输入输出音量被拉低了。 解决:打开"系统设置 → 隐私与安全性 → 麦克风",确认你的 DAW 或录音应用已勾选;再回"音频MIDI设置"把 BlackHole 的输入、输出音量都拉到最右。
现象:用多输出设备跑了十几分钟,声音开始卡顿、爆音原因:各设备内部时钟有细微漂移,长时间后累积失步。 解决:在"音频MIDI设置"里选中该聚合设备,为列表中的设备逐个打开"漂移校正",但作为时钟源(排在最顶上的主设备)的那台除外。
现象:想调多输出设备的整体音量,找不到旋钮原因:macOS 原生不支持调节多输出/聚合设备的音量,这是系统限制,不是 BlackHole 的问题。 解决:在"音频MIDI设置"里单独调每个成员设备的音量;或者借助 MultiSoundChanger 这类第三方小工具来控制聚合设备音量。
另外两个已知情况提前知晓:多输出设备上装 AirPods 当主时钟会失败(AirPods 麦克风采样率低,不能当主时钟,用内置扬声器静音或 BlackHole 2ch 当主设备即可);Apple Podcasts、Apple 信息这两类系统应用对多输出设备兼容性差,遇到无声换条链路即可。
收尾清单
- 从 2 通道版本起步,确认真的需要多轨再换 16 通道,避免设备列表里一堆用不上的设备。
- 全链路统一采样率:DAW、会议软件、BlackHole 用同一个值(推荐 48kHz),省掉采样率转换带来的音质损失。
- 每次录音前检查两处:系统麦克风权限、"音频MIDI设置"里 BlackHole 的音量。
- 用聚合设备就开漂移校正,主时钟设备保持 2 通道且排在列表顶部。
- 卸载时用官方卸载程序,或删掉
/Library/Audio/Plug-Ins/HAL下对应的驱动目录再执行sudo killall -9 coreaudiod。
BlackHole 目前的路线图里还有与外部设备时钟同步、AU 插件支持等在研功能,可以期待它从"音频线路"长成更完整的音频路由工具。先把上面两个场景跑通,它就已经能覆盖日常百分之九十的音频需求了。
【免费下载链接】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),仅供参考