如何在 Linux 中安裝和配置 PipeWire
自 2017 年嶄露頭角以來,PipeWire 一直將自己視為取代 PulseAudio 的有力競爭者,但它在穩定性方面仍有很多問題需要解決。 現在它已經建立了良好的聲譽,成為最成熟的 iOS 語音服務 Linux 這麼多年後,用戶現在很好奇升級到 PipeWire 是否真的值得。 在本文中,我們將為您提供有關 PipeWire 與 PulseAudio 優勢的最新信息,並向您展示如何在您選擇的情況下將其正確安裝到您的系統中。 通過執行上述步驟,您將了解如何在 Linux 中安裝和配置 PipeWire。
什麼是管線?
Linux 上的音頻始終遵循分層結構:您安裝一個驅動程序,它使硬件工作,但應用程序仍然希望以自己的方式與它對話。 為此,服務器充當用戶空間中的中介,與內核“對話”,然後內核與計算機對話。
Advanced Linux Audio Architecture (ALSA) 在您的應用程序和內核之間扮演著一個優秀、簡單的中間人的角色,但是如果您想要更複雜一點,您需要一個叫做音頻服務器的東西。
PulseAudio 和 PipeWire 都在內核所做的事情之上添加了一個層以提供許多功能。 它們允許多個應用程序流式傳輸音頻,提供詳細的混音器控制功能,甚至允許以與商業操作系統提供的應用程序套件功能相媲美甚至超過的方式動態地對音頻流進行後處理。
兩者之間的區別在於 PipeWire 層添加了視頻流管理等其他功能,同時還消除了一些使新用戶使用 PulseAudio 不愉快的問題。
自 2017 年推出以來,PipeWire 的穩定性問題逐漸消失。 它現在是許多發行版的默認音頻服務器,包括 Fedora 和基於 Manjaro 的 拱 、EndeavorOS、Garuda,甚至在 Ubuntu 22.10 中也看到了介紹。
對於大多數人來說,這種變化是如此的順利,以至於他們只是因為他們在系統上使用音頻的能力得到了擴展而感受到了這一點,這證明了它長期以來作為可靠服務的聲譽,作為對舊 PulseAudio 框架的直接升級。
雖然很容易認為升級到 PipeWire 是一件無需動腦筋的事情,但我們應該退後一步,深入研究該決定背後的細微差別,這樣您就可以更清楚地了解如果您採取這一步,您將面臨什麼:
正能量
- PipeWire 對許多以前無法在 PulseAudio 中完全工作的藍牙音頻設備提供廣泛的支持。 如果您的藍牙設備無法與您的發行版一起正常工作,執行此步驟可能會有所幫助。
- 大量發行版已經開始將 PipeWire 作為它們的默認音頻服務,並且它在官方存儲庫中為您遇到的任何內容提供了大量支持。
- 當同時將音頻流式傳輸到多個設備時,PipeWire 可以更有效地處理延遲。
- 後來的處理器,如 EasyEffects(以前稱為 PulseEffects)已在其版本中放棄了 PulseAudio 支持或計劃很快這樣做,因此有必要轉向 PipeWire 以保持這些應用程序為您提供的靈活性。
- 這些功能更適合想要進入更專業的音頻設置和應用程序的人。
- 它支持視頻流管道,允許屏幕共享應用程序享受更強大和安全的環境。
- PipeWire 服務套件附帶 pipwire-pulse,它擴展了對使用 PulseAudio API 和管理音頻的應用程序的支持。
- 它不太可能在高 CPU 負載下崩潰。
缺點
- 配置並不總是直接從 PulseAudio 轉換而來。 你將不得不學習一個全新的作曲系統。
- PipeWire 沒有任何直觀的連接邏輯,這意味著它需要另一個服務來偵聽音頻輸出並正確路由它。 這不一定是缺點,但可能會很煩人,因為它還需要您學習如何配置會話管理器以進行高級調整。
- 儘管隨著本文的撰寫,這種情況正在發生變化,但來自社區的文檔和支持對於 PipeWire 而言仍然不如 PulseAudio 廣泛。
如何安裝 PipeWire
如果您想冒險在您的系統上安裝 PipeWire,您必須首先確保您還沒有運行它!
在終端中輸入 pactl info 並查看它為您提供的信息 “服務器名稱”. 如果他給你 “在 PipeWire 上” 在括號中,您實際上正在運行 PipeWire。
如果終端顯示你 “脈衝音頻” 只是沒有遵循任何東西,這意味著您的系統沒有運行 PipeWire。
1.備份你的系統
如果出現問題,請確保您有退路! 如果您尚未創建系統備份,請在繼續之前先創建備份。 執行此操作的最簡單方法是使用 Timeshift,但您可以自由使用您知道的任何其他實用程序來創建系統文件的完整備份。
2.安裝服務
每個 PipeWire 安裝都從基本服務開始。 這可能已經與您的發行版一起安裝,但以防萬一它未安裝,您可以使用以下命令安裝它。
在基於 Arch 的系統上:
sudo pacman -S 管道線 管道線-alsa
在基於 Ubuntu/Debian 的系統上:
sudo apt安裝pipewire
3.安裝會話管理器
PipeWire 沒有自己的連接邏輯,所以你必須安裝一個會話管理器。 WirePlumber 是一種提供更精細的配置以及可以增強您的體驗的附加組件的工具:
在基於 Arch 的系統上:
sudo pacman -S 接線員
在基於 Ubuntu/Debian 的系統上:
sudo apt 安裝 wireplumber
如果您喜歡更簡單的版本或者您的發行版的官方存儲庫不包含 WirePlumber,您可以簡單地安裝 PipeWire Media Session:
在基於 Arch 的系統上:
sudo pacman -S pipeline-media-session
在基於 Ubuntu/Debian 的系統上:
sudo apt 安裝 pipwire-media-session
4. 安裝 PulseAudio 守護進程
由於大部分系統應用程序仍在向 PulseAudio 發送調用,如果您希望音頻正常工作,則必須安裝一個 PipeWire 守護程序來偵聽 PulseAudio 內容。
在基於 Arch 的系統上:
sudo pacman -S pipwire-脈衝
在基於 Ubuntu/Debian 的系統上:
sudo apt 安裝 pipwire-pulse
5.去除PulseAudio痕跡
如果由於與在此過程中安裝的其他東西(通常是 pipwire-pulse)發生衝突而必須確認 PulseAudio 的刪除,則可以跳過此步驟。
除此之外,從您的系統中刪除 PulseAudio 現在很重要,這樣它就不會嘗試查詢它。
在基於 Arch 的系統上:
sudo pacman -Rnspulseaudio
在基於 Ubuntu/Debian 的系統上:
sudo apt 刪除 pulseaudio
六、加工服務
安裝和卸載所有軟件包後,就可以啟動 PipeWire 了。
首先,刪除剩餘的 Pulseaudio 服務:
systemctl --user --now 禁用 pulseaudio.service pulseaudio.socket systemctl --user mask pulseaudio
激活 PipeWire 服務。 如果安裝 WirePlumber:
systemctl --user --now 啟用 pipewire pipwire-pulse wireplumber
如果您安裝了 PipeWire Media Session,請使用:
systemctl --user --now 啟用 pipewire pipwire-pulse pipwire-media-session
重新啟動系統後,PipeWire 現在應該可以正常工作了!
提示:你想 製作 UBUNTU 看起來像 MACOS BIG SUR، 就是這樣。
經常問的問題
Q1:我可以只使用 ALSA 嗎?
回答。 您當然可以在您的系統上運行 ALSA(特別是如果您使用的是窗口管理器而不是桌面環境),但您可能不會喜歡它。 ALSA 一次只能播放一個音頻流。 雖然這聽起來不錯,但這確實意味著您的系統在觀看視頻時嘗試發出播放通知時可能會出現不可預測的行為。 使用 ALSA 更響亮的服務器更方便,但它肯定需要少量內存。
Q2:PipeWire 可以安裝在 Linux Mint Cinnamon 中嗎?
回答。 根本! Cinnamon 有一個可怕的時刻,當您完成正確的 PipeWire 安裝後,它不會向您顯示音頻工具,但如果您嚴格按照這些說明進行操作,它會在您重新啟動時再次彈出。 只要確保按照說明中的描述移除剩餘的 PulseAudio,你就成功了!
Q3:如何解決睡眠後的聲音問題?
回答。 如果您的計算機在您從睡眠模式中喚醒時停止了聲音,很可能是因為 ALSA 未能正確初始化,偶爾會出現這種情況。 在這種情況下,只需使用以下命令手動啟動 ALSA:alsactl init
完成後,所有音頻問題都應該消失了!