首页 / 资讯中心 / 文章详情

BlackHole 快速上手:macOS 虚拟音频设备从安装到跑通

BlackHole 快速上手:macOS 虚拟音频设备从安装到跑通 ★ FEATURED ARTICLE
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/BlackHoleBlackHole 是一个现代化的 macOS 音频环回驱动loopback driver把某个应用的音频输出转给另一个应用输入的驱动。它解决一个核心问题macOS 上一个应用的音频无法直接传给另一个应用比如把系统里播放的音乐送进录音软件。当前版本 0.6.1GPL-3.0 开源协议要求 macOS 10.10 Yosemite 及以上同时支持 Intel 与 Apple Silicon。⚙️ 核心机制虚拟音频环回驱动原理与参数速查BlackHole 以 HAL 插件macOS 音频驱动插件形式安装在 /Library/Audio/Plug-Ins/HAL/BlackHoleXch.driver系统把它当作一个真实音频设备。驱动内部维护一个 65536 帧的环形缓冲区先进先出的数据缓冲音频统一为 32-bit float 格式发送端应用把音频写入 BlackHole 输出 → 数据进入环形缓冲区 → 接收端应用从 BlackHole 输入读出。驱动自身不引入额外延迟多个应用同时写入时音频会自动混合。参数默认值作用kNumber_Of_Channels2音频声道数可选 2/16/64/128/256kSampleRates8000~768000 全部支持的采样率列表kLatency_Frame_Size0驱动内部额外延迟帧数最大 65536kDevice_IsHiddenfalse主设备是否隐藏kDevice2_IsHiddentrue镜像设备是否隐藏kDevice_HasInput / HasOutputtrue / true设备是否具备输入、输出方向 从0到跑通最短路径安装 2 声道版本brew 结束时不应有报错。# 安装 2 声道版 brew install blackhole-2ch重启 CoreAudio系统音频服务进程让驱动完成注册预期无输出即成功。# 重启音频服务 sudo killall -9 coreaudiod确认驱动文件已落盘预期列出 BlackHole2ch.driver。# 检查驱动文件 ls /Library/Audio/Plug-Ins/HAL验证设备已被系统识别预期输出包含 BlackHole 2ch 的一行。# 查询音频设备列表 system_profiler SPAudioDataType | grep -i blackhole打开 Audio MIDI SetupmacOS 自带音频配置工具左侧设备列表里应该能看到 BlackHole 2ch格式为 48.0 kHz、32-bit Float输入输出声道音量滑块均可调节。✅ 三个今天就能跑完的任务任务1两个应用间转发音频做完后一个应用发出的声音会从另一个应用的输入端出现。发送端应用的音频设置里把输出设备改为 BlackHole 2ch。接收端应用里把输入设备设为 BlackHole 2ch选择通道 1-2。在 Audio MIDI Setup 中确认 BlackHole 的输入、输出音量拉到最大。发送端播放任意声音观察接收端的电平表是否有跳动。接收端若是录音软件DAW数字音频工作站直接开始录音即可得到文件。卡住了先检查系统设置 → 隐私与安全性 → 麦克风确认接收端应用已勾选麦克风权限。任务2多输出设备边听边录做完后你能一边从扬声器听到声音一边把系统音频录进 DAW。Audio MIDI Setup 左下角点“”选择“创建多输出设备”。勾选“内置输出”和“BlackHole 2ch”让内置输出排在第一位充当时钟源。给 BlackHole 2ch 勾选“漂移校正”drift correction补偿设备间的时钟偏差。在右上角菜单把系统输出设为这个 Multi-Output Device。打开 GarageBand 或 Logic Pro输入选 BlackHole 2ch开始录音。卡住了先检查内置输出是否已启用并位于列表最顶部macOS 有必须把它放第一位的已知限制。任务3构建自定义声道版本做完后你得到一个 8 声道、只开放两个采样率的 BlackHole8ch 驱动可用于多轨分轨录制。克隆仓库并进入项目目录。# 克隆项目 git clone https://gitcode.com/gh_mirrors/bl/BlackHole cd BlackHole用 xcodebuild 指定声道数和采样率构建驱动。# 自定义 8 声道构建 xcodebuild \ -project BlackHole.xcodeproj \ -configuration Release \ GCC_PREPROCESSOR_DEFINITIONS$GCC_PREPROCESSOR_DEFINITIONS kNumber_Of_Channels8 kSampleRates\44100,48000\把生成的 BlackHole8ch.driver 拷入 /Library/Audio/Plug-Ins/HAL。执行 sudo killall -9 coreaudiod 重新加载驱动。在 Audio MIDI Setup 中确认出现 BlackHole 8ch 设备。卡住了先检查xcodebuild 输出里是否有编译错误字符串类常量记得转义引号。 配置深潜按需调整默认值都能直接用但下面这些参数一旦调整效果差异很大。参数默认值什么情况下需要改改成什么kNumber_Of_Channels2需要多轨分轨录制16 / 64 / 128 / 256kSampleRates8000~768000 全开不想让应用选到高采样率kSampleRates44100,48000kLatency_Frame_Size0高声道数下出现爆音、卡顿512 或更大最大 65536kDevice2_IsHiddentrue想把输入输出拆成两个独立设备falsekDevice_HasInput / kDevice_HasOutputtrue / true想让设备变成单向把不需要的方向设为 false性能取舍只有两行低延迟kLatency_Frame_Size0 且 2 声道适合实时监听高声道数下更易爆音。高稳定kLatency_Frame_Size 调大到 512 以上同时降低声道数和采样率。下面的示例构建“主设备只留输入、镜像设备只留输出”的组合适合需要分开控制输入输出的场景。# 构建输入与输出分离版本 xcodebuild \ -project BlackHole.xcodeproj \ GCC_PREPROCESSOR_DEFINITIONS$GCC_PREPROCESSOR_DEFINITIONS kDevice_HasOutputfalse kDevice2_IsHiddenfalse kDevice2_HasInputfalse kDevice2_HasOutputtrue构建完成后把生成的驱动 bundle 拷到 /Library/Audio/Plug-Ins/HAL再执行 sudo killall -9 coreaudiod 即完成安装。 排障速查症状最常见原因一条命令/操作解决设备列表里看不到 BlackHolecoreaudiod 未重新加载驱动sudo killall -9 coreaudiod驱动文件不存在安装未完成ls /Library/Audio/Plug-Ins/HAL 确认 BlackHoleXch.driver接收端应用没有声音麦克风权限未授予系统设置 → 隐私与安全性 → 麦克风勾选接收端应用多输出设备整体无声内置输出未排第一Audio MIDI Setup 中启用内置输出并置顶运行数分钟后出现卡顿未开启漂移校正多输出里给除时钟源外的设备开启 Drift Correction安装包 .pkg 安装失败macOS 对特定目录有限制把 .pkg 从下载文件夹移到桌面后重试已知不兼容场景主要出现在多输出设备下Apple PodcastsApple MessagesHDHomeRun 生态与下一步README.md安装方式、各软件的使用指南和 FAQ。CHANGELOG.md完整的版本变更历史。Installer/create_installer.sh安装包构建、签名与公证脚本可参考接入 CI。BlackHole.xcodeprojXcode 工程自定义构建的入口。遇到怪问题先去 Issue 区搜一下关键词大版本升级前翻一眼 CHANGELOG。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),仅供参考
阅读完成 · 觉得有帮助?
咨询建站