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
BlackHole 是一款现代化的 macOS音频环回驱动,让应用程序之间以零额外延迟传递音频。macOS 的音频体系只提供一个全局默认输出,应用默认无法把声音"喂"给另一个应用的输入——直播时录制系统声音、把 DAW 音乐送进会议软件,都依赖这样一块虚拟设备。
🎯 项目定位与核心价值
macOS 的音频栈由Core Audio统一调度,所有输出都汇聚到"系统默认输出"。这对普通听感很干净,但对专业工作流是个死胡同:一个应用的声音无法直接进另一个应用。BlackHole 补的正是这个缺口——它以标准音频设备的身份注册在 CoreAudio HAL 层,对任何 App 来说它只是一块普通声卡,驱动的输出被直接桥接到它的输入,仅此而已。
设计哲学是"只做一件事,并且做到最薄":整个驱动集中在一个文件 BlackHole/BlackHole.c,没有内核扩展、不改系统安全策略、没有常驻 GUI 进程,装完即忘。数据路径是一路内存环形缓冲区,默认延迟帧数为 0,这就是它敢称零延迟的底气。
相比早年流行的环回工具,关键差异有三点:其一,直接使用 Core Audio 原生的 32-bit float 格式,兼容性最广、动态余量最大;其二,通道数、采样率、延迟、设备名都可以在构建期用预编译常量定制;其三,同时支持 Intel 与 Apple Silicon,向下兼容到 macOS 10.10。
⚡ BlackHole 核心能力全景
多通道配置与宽采样率支持
官方构建 2、16、64、128、256 五个通道版本,2ch 覆盖立体声,16ch 是默认版本,高通道服务多轨录音。采样率覆盖 8kHz 到 768kHz 共 12 档。效果:16ch 可把 16 路独立 App 音流同时送进 DAW;高分辨率工作流全程无需重采样。
零延迟数据路径与多源混音
默认kLatency_Frame_Size为 0 帧,音频从发送端输出缓冲区直接拷贝到接收端输入缓冲区,多路来源自动求和混音。效果:DAW 与会议软件同时跑时对方听不到额外延迟,多路声音同时抵达会被混在一起而非互相掐断。
音量静音与镜像设备
标准音量(-64dB 至 0dB,对数曲线)与静音控制可直接在 Audio MIDI Setup 里调;驱动还内置一个默认隐藏的镜像设备,用kDevice2_*系列常量可定制它的可见性与输入输出方向,例如组成"可见输入 + 隐藏输出"的设备对。效果:应用要求输入输出分离时无需再装别的驱动。
无内核扩展与跨芯片兼容
以标准 AudioServerPlugIn 形式随 HAL 目录加载,不动系统安全策略,Intel 与 Apple Silicon 通吃。效果:双击安装即可用,M 系列芯片与老款 Intel 机体验一致。
🚀 真实使用场景
DAW 送会议软件:输入是 Logic Pro X 或 GarageBand 的输出;发送端 App 把输出设为 BlackHole,驱动混音后送到 BlackHole 的输入;Zoom 或 FaceTime 里把麦克风选成 BlackHole,对方就能听到你的音乐。
录制系统声音:在 Audio MIDI Setup 建一个Multi-Output device,把内置扬声器与 BlackHole 输出聚合后设为系统声音输出;DAW 的输入设备再选 BlackHole,录 1-2 通道。任何应用的声音都能进轨,同时还能从喇叭监听到。
通道路由:16 通道版本可以给不同应用分配不同通道,接收端只取对应通道的输入。发送端输出、驱动转发、接收端输入,全程无重编码、无重采样。
📦 快速上手:BlackHole 安装与配置五步走
安装两条主流路线:下载官方 .pkg 安装器双击安装;或用 Homebrew 执行brew install blackhole-2ch(另有 16ch、64ch 可选)。装好后按 5 步完成配置:
- 安装前关闭所有正在运行的音频应用;
- 安装并重启后,打开 Audio MIDI Setup,确认设备列表出现 BlackHole;
- 在发送端 App 中把输出设备设为 BlackHole;
- 在接收端 App 中把输入设备设为 BlackHole;
- 在系统设置 → 隐私 → 麦克风中,允许接收端 App 的麦克风权限,出声验证。
卸载同样干脆:删除/Library/Audio/Plug-Ins/HAL/BlackHoleXch.driver再执行sudo killall -9 coreaudiod重启 CoreAudio 即可。
🛠️ 进阶:定制构建与后续演进
需要自己的参数时,在构建期改常量即可:kNumber_Of_Channels定通道数、kSampleRates定采样率、kLatency_Frame_Size定内部延迟、kDevice2_*定镜像设备的可见性与方向。Installer/create_installer.sh 演示了如何批量构建、签名并公证 2ch 到 256ch 的安装器。路线图上还包括 24-bit/16-bit 位深与物理设备时钟同步。
写在最后
BlackHole 用一份 C 代码、一条零延迟环形缓冲和一组可定制的常量,填上了 macOS 音频体系里缺的那块拼图。它小而够用,当第一路声音从一个应用顺畅地流进另一个应用,你就会明白它为什么成为 macOS 音频环回的事实标准。
git clone https://gitcode.com/gh_mirrors/bl/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),仅供参考