macOS 应用间传音频?BlackHole 虚拟音频回环驱动从安装到路由的完整指南
macOS 应用间传音频?BlackHole 虚拟音频回环驱动从安装到路由的完整指南
【免费下载链接】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 上的虚拟音频回环驱动:应用 A 输出到它,应用 B 就能从它读入,驱动本身不增加延迟。本文按"装好 → 确认设备 → 搭第一条路由 → 录系统声音"的顺序,带你 10 分钟跑通整条链路。
两分钟装好 BlackHole:一行 Homebrew 命令或官方安装包
先选声道版本
- 官方提供 2、16、64、128、256 五种声道数的构建,Homebrew 源里收录了前三种(
blackhole-2ch、blackhole-16ch、blackhole-64ch) - 大多数录音与路由场景用 16ch 就够;声道不是越多越好,高采样率叠多声道可能拖累系统性能
方式一:Homebrew 安装
brew install blackhole-16ch方式二:官方 .pkg 安装包
- 下载最新安装包(当前版本 0.6.1,2025-02-06 发布,变更历史见 CHANGELOG.md)
- 关闭所有正在运行的音频应用
- 双击打开安装包完成安装,安装程序会提示重启系统
两点可以放心:驱动文件落在系统根目录的/Library/Audio/Plug-Ins/HAL,安装过程不使用内核扩展、不改动系统安全设置;兼容 macOS 10.10 Yosemite 及以上,Intel 与 Apple Silicon 通吃。
安装后去哪儿找它:在 Audio MIDI Setup 确认设备
BlackHole 不会出现在"应用程序"文件夹——它是 HAL 音频驱动,不是 App,只在系统音频层面可见。
- 打开"应用程序 → 实用工具 → 音频MIDI设置"(Audio MIDI Setup)
- 左侧设备列表应出现 BlackHole,16ch 版本显示
16 ins / 16 outs - 选中它,右侧 Format 显示
48,000 Hz / 16 ch 32-bit Float
关于格式:驱动使用 32-bit float,对 24-bit 整数音频无损,所有应用均可正常播放录制,无需在驱动层调整位深。采样率支持 8 kHz 到 768 kHz 共 12 档,日常场景 48 kHz 足够。
第一条路由怎么搭:把发送端和接收端都对准 BlackHole
这是最小可用配置,全程只动两个应用的设备设置:
- 发送应用:输出设备选择 "BlackHole",把音频输出到 1–2 通道
- 接收应用:输入设备选择 "BlackHole",从对应的通道读入
- 多个应用同时写入 BlackHole 时,声音会被混音叠加(sum)
- 播放前把 BlackHole 的输入、输出主音量都拉满,它的主音量可调范围是 -64 dB 到 0 dB
把系统声音录进 DAW:多输出设备的五步配置
只把输出指向 BlackHole 时你自己听不到声音。要让"耳朵"和"录音"同时工作,需要建一个多输出设备:
- 在 Audio MIDI Setup 左下角点 "+",选"创建多输出设备"
- 勾选 BlackHole 和 Built-in Output;注意 Built-in Output 必须启用且排在列表第一位(macOS 的已知限制)
- 在 Audio Devices 中右键新建的多输出设备,选 "Use This Device For Sound Output"
- 打开 GarageBand 等 DAW,输入设备设为 "BlackHole"
- 新建轨道,输入通道选 1–2,在其他应用里播放音频,即可监听或录制
两个已知限制,官方 FAQ 有明确记录:
- 多输出设备本身无法调音量,macOS 只允许在 Audio MIDI Setup 里调成员设备的音量
- Apple Podcasts、Apple Messages、HDHomeRun 对多输出设备兼容不佳,录制时换应用或换思路
没声音、有爆音、AirPods 连不上:三类高频问题的排查顺序
录音软件收不到任何声音
- 打开"系统偏好设置 → 安全性与隐私 → 隐私 → 麦克风",确认 DAW 已获麦克风权限(BlackHole 以输入设备身份出现,走的是麦克风权限)
- 确认 Audio MIDI Setup 中 BlackHole 的输入、输出音量都在最大值
- 若走了多输出设备,确认 Built-in Output 已启用且排在第一位
播放几分钟开始出现爆音或卡顿
时钟漂移导致。在 Audio MIDI Setup 中,除主时钟设备(Clock Source)外,给其余所有设备打开 drift correction(漂移校正)。
AirPods 在多输出设备里不工作
AirPods 的麦克风工作在较低采样率,不能担任主时钟设备。解决办法:用内置扬声器(可以静音)或 BlackHole 2ch 作为主时钟设备——BlackHole 16ch 不行,主时钟设备要求 2 声道。
另外,个别 macOS 版本在 Downloads 目录安装 .pkg 会失败,把安装包挪到桌面(或反向操作)再试一次即可。
进阶定制:镜像设备、声道数与采样率怎么改
核心驱动代码集中在 BlackHole.c 一个文件里,行为全部由预处理器常量决定,通过xcodebuild的GCC_PREPROCESSOR_DEFINITIONS在构建时传入。需要源码时:
git clone https://gitcode.com/gh_mirrors/bl/BlackHole三个最常用的编译常量
kNumber_Of_Channels:声道数。README 明确提醒:不要在高声道数下再用高采样率kSampleRates:采样率,多个值用逗号分隔,例如kSampleRates='44100,48000'kLatency_Frame_Size:驱动内部缓冲帧数,最多 65536 帧,可在 BlackHole 内部给音频加延时,适合高声道数场景
镜像设备:拆出独立的输入设备和输出设备
驱动默认自带一个隐藏的镜像设备(源码中kDevice2_IsHidden默认为 true)。通过kDevice_IsHidden、kDevice_HasInput、kDevice_HasOutput及对应的kDevice2_*常量,可以把它配成"一个仅输入、一个仅输出"的成对设备,适合需要输入输出路径分离的应用集成场景。
打包、签名、公证的完整流程见 Installer/create_installer.sh。许可方面:BlackHole 采用 GPL-3.0 协议(见 LICENSE),如果你的应用不是 GPL-3.0,集成前需联系 Existential Audio 获取授权。
干净卸载:删除驱动并重启 CoreAudio
- 官方为 2ch、16ch、64ch 各提供了独立的 Uninstaller 安装包,双击运行即可
- 手动卸载只需要两条命令:
rm -R /Library/Audio/Plug-Ins/HAL/BlackHoleXch.driver把X替换为2、16或64。注意路径是系统根目录的/Library,不是~/Library。
sudo killall -9 coreaudiod执行完回到 Audio MIDI Setup,确认设备列表里已经找不到 BlackHole,卸载即完成。
【免费下载链接】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),仅供参考