news 2026/10/30 4:41:19

BlackHole 深度解析:macOS 零延迟音频环回驱动的完全上手指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
BlackHole 深度解析:macOS 零延迟音频环回驱动的完全上手指南

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 步完成配置:

  1. 安装前关闭所有正在运行的音频应用;
  2. 安装并重启后,打开 Audio MIDI Setup,确认设备列表出现 BlackHole;
  3. 在发送端 App 中把输出设备设为 BlackHole;
  4. 在接收端 App 中把输入设备设为 BlackHole;
  5. 在系统设置 → 隐私 → 麦克风中,允许接收端 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/30 4:41:15

从40MB到几MB:rrweb增量快照机制与录制数据压缩实战

从40MB到几MB:rrweb增量快照机制与录制数据压缩实战 【免费下载链接】rrweb record and replay the web 项目地址: https://gitcode.com/gh_mirrors/rr/rrweb 第一次用 rrweb 录一段 3 分钟的操作会话,你拿到的可能是一个 40MB 的 JSON 文件。原因…

作者头像 李华
网站建设 2026/10/30 4:29:58

AI智能体运行状态异常监控告警实现方案

AI智能体运行状态异常监控告警实现方案# AI智能体运行状态异常监控告警实现方案 一、文档概述 1.1 业务背景 随着大模型驱动的AI智能体在自动化任务调度、智能问答、数据处理、流程执行等场景规模化落地,智能体离线卡死、推理超时、接口调用失败、资源占用过载、任务…

作者头像 李华
网站建设 2026/10/30 4:29:41

CSV 游标流式导出

推荐:方案 A — CSV 游标流式导出核心思路:不一次性加载,MySQL 游标分批取 → 写一行 → flush → 释放 → 下一批。while (true) {SELECT ... WHERE id > $lastId LIMIT 5000; ← 只取 5000 行│foreach → fputcsv($fp) …

作者头像 李华