BlackHole 完整指南:讓 Mac 終於錄得到自己的聲音(2026 更新版)

一個免費開源的虛擬音訊驅動,把 macOS 自從 OS X 時代就存在的「內建工具錄不到系統音」黑洞補起來。本篇從原理、安裝、Multi-Output Device、實戰場景、踩坑到競品比較一次講完。

BlackHole 封面

為什麼 Mac 預設錄不到自己的聲音

按下 Cmd + Shift + 5 開始錄影、放一首 Spotify、停掉、回頭一聽——畫面在、聲音不見。哪怕你已經更新到 macOS Tahoe(macOS 26),Apple 自家內建的螢幕錄影工具(QuickTime、截圖工具列)到今天還是抓不到「Mac 自己播出去的聲音」。這不是你設定錯,是 Apple 本來就不讓你錄。

原因說穿了不複雜:版權與隱私風險。iTunes/Apple Music 時代,Apple 不想讓系統內建工具變成 DRM 規避器;同時系統音流裡夾雜訊息提示、視訊通話、密碼確認等敏感資訊,作業系統層級開放錄製就是惹麻煩。所以 Apple 寧可把這個能力留給有 entitlement 的第三方工具。

ScreenCaptureKit 在 macOS 13 Ventura 之後給了開發者一條合法的路(OBS Studio 從 v30 開始用它 ),但 Apple 自家的 QuickTime、螢幕截圖工具列至今沒接這個 API。你想用內建工具錄系統音?對不起,繞道走。

繞道的路通常只有一條:把 macOS 的音訊輸出「假裝」送進一張虛擬音效卡,再從那張卡的輸入端把訊號讀回來。BlackHole 就是那張虛擬卡——0 元、開源、零延遲、可商用。

BlackHole 的真身:HAL 層的虛擬音效卡

HAL 層概念

BlackHole 是 Existential Audio 的 Devin Roth 維護的開源專案,採 GPL-3.0,在 GitHub 上有近 20k stars ,是這個賽道唯一還在維護、又夠好用的免費解(前輩 Soundflower 早就停更)。它的本質是一個 Core Audio HAL(Hardware Abstraction Layer)driver——注意,不是 kernel extension,是 user-space 的 .driver bundle。

這個區別很重要。BlackHole 安裝到 /Library/Audio/Plug-Ins/HAL/BlackHoleXch.driver,不會碰 kernel,所以不會在 Apple Silicon 上被 SIP 擋下、也不需要降低系統安全等級就能裝。安裝完只會重啟 coreaudiod 這個系統 daemon,整個過程在 DeepWiki 的安裝流程 寫得很清楚。

它對 Mac 來說就是「多了一張音效卡」。輸出寫到 BlackHole 的應用程式(Spotify、Chrome、Zoom),跟從 BlackHole 讀取的應用程式(OBS、Whisper、Logic Pro),之間用記憶體 ring buffer 直接交換 32-bit float 音訊資料。延遲?官方文件寫 zero additional latency——意思是除了 Core Audio 本來就有的 buffer 延遲,BlackHole 自己不額外貢獻一毫秒。

換個說法:它就是一條長度為零的虛擬音源線,把 A app 的輸出端跟 B app 的輸入端焊在一起,繞過真實世界的喇叭跟麥克風。

三個版本怎麼選:2ch / 16ch / 64ch

BlackHole 有三個版本,名字裡的數字就是聲道數。先看表:

版本聲道數適合誰典型情境
BlackHole 2ch2(立體聲)95% 的使用者YouTube/Spotify/Zoom 錄音、螢幕錄影、AI 轉錄
BlackHole 16ch16環繞聲、DAW 跨 App5.1/7.1 監聽、Logic ↔ Ableton routing、多軌 stem
BlackHole 64ch64重度多軌玩家大型 Atmos 製作、學術 telematic 演出

官方 GitHub Discussion #290 的結論很直接——維護者本人 Devin Roth 在串裡只回了「2ch」兩個字打死,意思很白:除非你要做環繞聲或 DAW 跨 App routing,否則 2ch 就對了。

我看過太多人裝完 16ch 結果 Zoom 抓不到聲音,回頭問為什麼——因為 Zoom 預設只吃 2 聲道,遇到 16 聲道虛擬卡會誤判輸入空。夭壽,這雷我以前也踩過。

好消息是三個版本可以同時安裝,互不打架。所以保險做法:日常 2ch 主用,遇到 DAW 跨 App routing 再裝 16ch 備用。

⚠️ macOS 26 Tahoe 有個新雷:GitHub Discussion #860 指出系統在 Tahoe 上會強制把所有 16 聲道塞滿,不再 downmix 到立體聲。如果你在 Tahoe 用 16ch 版本,可能會發現某些 App 抓不到正常的左右聲道——建議直接改用 2ch 版本繞過這個問題。

安裝與設定 Multi-Output Device

Audio MIDI Setup

最快的安裝方式是 Homebrew,官方 Homebrew cask 跟著 GitHub releases 同步,當前穩定版是 0.6.1,支援 macOS 10.10 Yosemite 以上 (Intel 與 Apple Silicon 通吃):

brew install --cask blackhole-2ch
# 或 16 / 64 聲道版本
brew install --cask blackhole-16ch
brew install --cask blackhole-64ch

不用 brew 也行,官網填 email 就會寄安裝包來。安裝完開「應用程式 → 工具程式 → 音訊 MIDI 設定」(Audio MIDI Setup),左側裝置列表應該會出現 BlackHole 2ch,這代表驅動已經被 coreaudiod 認到。

接下來最容易卡住的一步:單獨選 BlackHole 當輸出,自己會聽不到聲音——因為訊號全部跑進虛擬卡的 ring buffer 裡,沒有走到真正的喇叭。這時候你需要建立 Multi-Output Device(多重輸出裝置)。

在 Audio MIDI Setup 左下角 + 按鈕點下去,選 Create Multi-Output Device,然後勾選你的喇叭/耳機 + BlackHole 2ch。重點兩個:

  1. 主裝置(Master Device)一定要選你真正的喇叭,不要選 BlackHole——時鐘要跟著實體裝置走
  2. BlackHole 那一列的 Drift Correction(漂移校正)勾起來——這一勾可以省下你日後 80% 的同步問題

Aggregate Device 跟 Multi-Output Device 差在哪?簡單講:Multi-Output 只管輸出Aggregate 同時管輸入跟輸出 。錄系統音用 Multi-Output 就夠,DAW 同時要進多張音效卡才需要 Aggregate。

設定流程畫一下:

App 輸出 (Spotify / Chrome / Zoom)
         │
         ▼
   macOS System Output
         │
         ▼
   Multi-Output Device
    ├──► 實體喇叭(主時鐘,你聽到聲音)
    └──► BlackHole 2ch(Drift Correction)
                │
                ▼
         錄音 App 輸入 (OBS / QuickTime / Whisper)

把系統音輸出選成這個 Multi-Output Device,你就能一邊聽、一邊讓 BlackHole 收音。

實戰場景一次看:直播、錄影、AI 轉錄、DAW

Podcast 場景

QuickTime 錄系統音

最簡單的場景。系統輸出選你剛建好的 Multi-Output Device → 打開 QuickTime → 新增「螢幕錄影」或「音訊錄影」→ 旁邊小箭頭把麥克風來源改成 BlackHole 2ch → 錄。完成。

OBS 直播 / 串流抓 Mac 內部音

OBS 30 之後其實內建了 macOS Audio Capture,可以直接抓系統音、不需要 BlackHole。但實務上,很多人還是用 BlackHole ——一來相容更廣,二來要做「桌面音 + 麥克風 + Discord 朋友的語音」三軌分離混音時,走 BlackHole + Multi-Output Device 的設定可控性更高。

走 BlackHole 的設定:OBS → Settings → Audio → Global Audio Devices → Desktop Audio 選 BlackHole 2ch。麥克風走另一條(直接抓你的 USB mic)。這樣你的觀眾會聽到「Mac 的系統音 + 你的人聲」分離兩軌,後製超方便。

AI 會議轉錄 pipeline(Whisper / Granola / 本地 LLM)

這是 2026 年我覺得 BlackHole 最強的用法。雲端服務如 Granola 在本機抓會議音訊,再把逐字稿上傳到雲端做摘要 ;但如果你跟我一樣,公司 NDA 連逐字稿都不准離開電腦,那 100% 本地的 Whisper pipeline 就是解。

whisper.cpp 搭 BlackHole 的標準本地 pipeline:

  1. Zoom/Teams/Meet 輸出 → 系統音 Multi-Output → BlackHole
  2. 你的麥克風 → 另一條音軌
  3. 兩條音軌一起餵給 whisper.cpp(Apple Silicon 上開 Metal 加速)
  4. 轉成逐字稿後丟 Claude 或本地 LLM 做摘要

整個 pipeline 在 M2 Pro 上跑 30 分鐘會議大約三分鐘出稿,本地零雲端,香到爆。

DAW 跨 App 路由(Spotify → Logic)

把 Spotify 當素材庫的時候很好用。Spotify 輸出設成 BlackHole 16ch,Logic Pro 新增一條 audio track,輸入選 BlackHole 16ch 的對應通道,按 record——Spotify 的音訊就跑進 Logic 變成可剪輯素材。

提醒:這只能個人練習用,商業發佈當然有版權問題,別拿來搞事。

那些踩過的坑:取樣率、Drift、Tahoe 新雷

踩坑警示

這節是我自己 + 社群苦主回報的精華,按出現頻率排。我第一次認真用 BlackHole 錄 podcast 那天,光是「為什麼喇叭沒聲音」就花了 40 分鐘排查——後來才發現是踩了下面這第一個雷。

1. Multi-Output 設定完沒聲音
症狀:選了 Multi-Output Device 當輸出,喇叭一片死寂。
原因:主裝置(Master Device)順位錯了,時鐘抓到 BlackHole 上去。
解法:Audio MIDI Setup 把實體喇叭拖到最上面,並把它設為主裝置。

2. 錄音檔越錄越不同步(Drift)
症狀:錄 10 分鐘以上,聲音跟畫面慢慢飄掉。
原因:BlackHole 的虛擬時鐘跟實體裝置時鐘有微秒級偏差,累積成大誤差。
解法:Audio MIDI Setup 中把 BlackHole 那列的「Drift Correction」勾起來 。我曾經錄了一場 50 分鐘的訪談,後製剪到第 35 分鐘發現嘴型對不上聲音,幹,整集重錄。Drift Correction 這個勾真的差超多。

3. 取樣率不一致導致破音/雜訊
症狀:錄出來爆音、有奇怪 click。
原因:Spotify 是 44.1 kHz、BlackHole 設 48 kHz、喇叭又是 96 kHz,三方在打架。
解法:Audio MIDI Setup 把所有相關裝置都改成同一個取樣率(48 kHz 通常最安全)。

4. 錄音裡有回授尖叫
症狀:錄出來突然爆炸的高頻嘯叫。
原因:你把 BlackHole 同時設成輸入跟輸出,訊號自己咬自己的尾巴。
解法:檢查錄音 App 的監聽選項,不要對 BlackHole 開啟即時監聽(input monitoring)

5. macOS Tahoe 上 16ch 版本詭異行為
症狀:升上 Tahoe 之後,原本好好的 16ch 設定突然抓不到聲音。
原因:Tahoe 改變了聲道分配邏輯 ,不再自動 downmix。
解法:換用 2ch 版本,或在 App 端手動指定要讀取的聲道。

6. 升級 macOS 後 BlackHole 不見
症狀:升完系統,BlackHole 從裝置列表消失。
原因:大版本升級會清掉部分 HAL plugin。
解法:重裝(brew reinstall --cask blackhole-2ch)即可,設定不會掉。

跟 Loopback / Audio Hijack / SoundSource 怎麼選

Rogue Amoeba 的這三套是 macOS 音訊工具的老牌商業解,常被拿來跟 BlackHole 比。一張表講完:

工具定位價格(USD)主要差異
BlackHole純路由(虛擬卡)0 元,開源沒 GUI、所有路由靠 Audio MIDI Setup 手動接,但夠用
Loopback路由(圖形化)$99拖拉式介面、可建「虛擬多 App 合成裝置」,學習曲線低
Audio Hijack路由 + 錄音 + 處理$69可以直接錄成檔案、內建效果器、適合 Podcaster
SoundSource音量/裝置控制$49不做路由,做的是 per-app 音量、per-app EQ、選單列快速切換

我自己的組合是 BlackHole 2ch 處理日常 95% 的路由,要錄音時直接用 OBS 或 QuickTime 抓 BlackHole 當輸入;SoundSource 另外加掛,純粹拿來做 per-app EQ(耳機同時開會 + 聽音樂時超實用,跟前面三套不衝突)。Audio Hijack 跟 Loopback 是好東西,後製需求多的人付錢買不虧——但 BlackHole 真的免費到讓人很難找理由先付那 99 美元。

ScreenCaptureKit 來了,BlackHole 過氣了嗎?

macOS 13 Ventura 開始,Apple 推了 ScreenCaptureKit ——一個官方 API,讓有 entitlement 的 App 可以原生抓系統音,不需要虛擬驅動。OBS 30、Screenify、ScreenSnap Pro 都已經接了。

那 BlackHole 是不是要進博物館了?短期看不會,理由四個:

  1. 內建工具沒接 ScreenCaptureKit。QuickTime、螢幕截圖工具列到 Tahoe 都還是抓不到系統音。Apple 自己沒換,BlackHole 還是繞道唯一解。
  2. 跨 App 路由 ScreenCaptureKit 做不到。它只能「我這個 App 抓系統音」,沒辦法「App A 的輸出餵給 App B 當輸入」。DAW 跨 App、AI 本地轉錄這類場景,BlackHole 沒對手。
  3. per-app 抓特定 App 音訊這件事 ScreenCaptureKit 行,但 BlackHole 搭 Audio Hijack/Loopback 也行,而且更可控。
  4. macOS 系統內部音流的歷史包袱。每個 App 對音訊路由的處理都不一樣,ScreenCaptureKit 在某些 App 上會詭異掉訊號,BlackHole 走 Core Audio 標準路徑反而穩定。

長期看,每年 macOS 大版本升級都讓 BlackHole 維護者多忙一輪,Tahoe 上的 16ch 行為變化 就是最新一例。但只要 Apple 還允許第三方 user-space HAL driver 存在,BlackHole 就還有空間。從 GitHub 仍持續發 PR 跟 release 的節奏看,短期看不到 EOL 的訊號。

結語

回頭看那場錄壞的 50 分鐘訪談,當時我以為是 macOS 的螢幕錄影哪裡又出新 bug;後來才知道,是我自己沒勾 Drift Correction,誤把鍋甩給作業系統。BlackHole 教我的不是「怎麼錄系統音」,是「怎麼真的看懂 Mac 的音訊架構」——什麼是 HAL、什麼是時鐘主裝置、為什麼 Aggregate 跟 Multi-Output 是兩件事。這些知識搞清楚之後,連 Loopback 跟 Audio Hijack 都用得更順。

實務建議:起手 brew install --cask blackhole-2ch,建一個 Multi-Output Device(主裝置選喇叭、BlackHole 勾 Drift Correction),系統輸出選它。八九成的場景到這裡就解掉。後製要錄檔再加 Audio Hijack,路由複雜到讓你頭痛再加 Loopback——但別跳過 BlackHole 這一步,免費的東西先把基礎打好,付費工具的價值才看得出來。

如果這篇幫你省下一個下午的設定地獄,把它丟給下一個被 macOS「螢幕錄影沒聲音」逼瘋的朋友吧。

參考資料

沒有留言:

張貼留言

TTS 文字轉語音完全指南:技術原理、聲音克隆與 2026 選型實戰

前陣子我在測 Qwen3-TTS,官方技術報告寫著首包延遲 97ms,聽起來就是為即時對話而生的。結果我照官方範例跑起來,按下生成、等了整整 10 秒才聽到第一個字。乾,差了一百倍。 這不是我環境爛,而是 TTS 這個領域的日常:論文數字、行銷頁數字、你實際跑出來的數字,是三個...