PulseAudio

類Unix作業系統的音訊伺服器

PulseAudio(以前叫Polypaudio)是一個跨平台的、可通過網絡工作的聲音服務,其一般使用於LinuxFreeBSD操作系統。它可以用來作為一種簡易改進的Enlightened Sound Daemon(ESD)替換。

PulseAudio
PulseAudio logo
開發者Lennart Poettering, Pierre Ossman, Shahms E. King, Tanu Kaskinen, Colin Guthrie
當前版本16.1(2022年6月22日,​2年前​(2022-06-22
預覽版本15.99.1(2022年2月21日,​2年前​(2022-02-21
源代碼庫 編輯維基數據鏈接
編程語言C[1]
操作系統跨平台
類型音效伺服器英語Sound server
許可協議GNU寬通用公共許可證 2.1[2]
網站www.freedesktop.org/wiki/Software/PulseAudio/

PulseAudio主要運行於POSIX兼容系統(如Linux和FreeBSD)。PulseAudio是自由軟件,基於GNU寬通用公共許可證 (LGPL)2.1協議[2]

該項目創建於2004年,當時的名稱叫Polypaudio,但在2006年更名為PulseAudio[3]

PulseAudio與新出現的PipeWire競爭,後者提供了一個兼容PulseAudio的服務組件(稱為pipewire-pulse),PipeWire現在被許多Linux發行版默認採用以替換PulseAudio,包括Fedora LinuxUbuntuDebian[4][5][6]

描述

 
PulseAudio operational flow chart

PulseAudio是一個聲音服務器,一個後台進程從一個或多個音源(進程或輸入設備)接受聲音輸入 然後重定向聲音到一個或多個槽(聲卡,遠程網絡PulseAudio服務,或其他進程)。

PulseAudio的一個目的通過它是重定向所有聲音流,包括那些試圖訪問硬件的進程(像那些遺留的基於OSS的軟件)。PulseAudio通過提供適配器給那些使用不同的聲音系統,像aRtsESounD

在Linux下的典型方案,用戶提供配置ALSA來使用PulseAudio提供的虛擬設備。儘管應用使用ALSA會將輸出的聲音輸出到PulseAudio,然後PulseAudio會使用ALSA它自己來訪問真正的聲卡. PulseAudio同樣提供它自己的接口給應用程序,用來直接支持PulseAudio,就像那些遺留的基於ESD的軟件,這樣使得PulseAudio適合作為ESD的替代品。

對於OSS的軟件, PulseAudio提供padsp工具,用來代替硬件文件夾像/dev/dsp,欺騙應用程序,使程序以為它們有聲卡的完全控制權。在事實上,它們的輸出被PulseAudio重定向。

特點

PulseAudio的主要特點包括:

  • 可對每一個應用程序進行音量控制Per-application volume controls[7]
  • 可擴展的插件與支持可裝載模塊架構
  • 兼容性許多流行的音頻應用程序[8]
  • 支持多重音源和多重輸出
  • 低延時操作[來源請求]和支持延遲測量
  • 一個對處理器資源效率零拷貝內存架構
  • 能夠發現本地網絡上使用PulseAudio的其他計算機並通過其揚聲器直接播放聲音
  • 能夠改變一個應用程序的聲音輸出設備,就算這個應用程序在播放聲音(程序不需要支持這特性,而事實上,程序甚至沒有意識到改變)
  • 帶有腳本功能的命令行界面
  • 一個功能完善且帶有命令行重新配置功能的守護進程
  • 內置採樣轉換和重採樣功能
  • 能夠合併多塊聲卡成一個聲卡
  • 能夠同步播放多個音頻流
  • 動態檢測藍牙音頻設備
  • 使全系統均衡的能力

使用

PulseAudio被幾個主要Linux發行版使用,例如FedoraUbuntuMandrivaLinux MintopenSUSEOpenWRTGNOME項目中還有越來越多的對Pulseaudio的支持。

PulseAudio已經被多款基於Linux的移動電話設備當作聲音系統,包括Nokia N900Palm Pre.[9]

當PulseAudio第一次公開發布時, PulseAudio開發者Lennart Poettering描述它為"the software that currently breaks your audio".[10] Poettering later claimed that "Ubuntu didn't exactly do a stellar job. They didn't do their homework" in adopting PulseAudio[11] for Ubuntu "Hardy Heron" (8.04), a problem which was then improved with subsequent Ubuntu releases.[12] However, on October 2009, Poettering reported that he was still not happy with Ubuntu's integration of PulseAudio.[13]

某些程序,包括Linux上的舊版的Adobe Flash,在PulseAudio上造成不穩定.[14][15]幸運的是較新的Flash插件的不引起衝突,因此Flash和PulseAudio的是兼容的。

替代品

ALSA提供一個軟件調音台叫dmix,它是在PulseAudio前開發的。這是幾乎可以在所有的Linux發行版使用的一個簡單的PCM音頻混合的解決方案。但它不提供PulseAudio的高級功能(如高品質的重採樣,聚合裝置,定時的調度和網絡音頻)。

JACK是一個提供相比PulseAudio更專業的服務的體系,提供實時和低延時的表現。 和自從JACK2開始支持對稱多處理,使得所有的音頻客戶端能有效平衡負載於多個處理器。音頻客戶端可以彼此之間任意連接。在JACK的所有客戶之間的圖新連接,可以被多種應用程序可視化和編輯,例如Qjackctl。這使得它非常直觀地概述了整體音頻控制流,可以在任何時候修改所有的音頻應用程序和硬件路由。JACK對專業音頻軟件來說是首選的專業音頻應用服務,例如ArdourRezoundLinuxSampler

在OSS V4的聲音系統,如4Front,可提供軟件混音,重採樣和改變對每個應用程序的基礎量,與PulseAudio對比,這些功能是在內核中實現。PulseAudio的還可以與現有的音響系統互操作,包括那些設計成獨占聲卡的程序(OSS V3)

PipeWire是一款同時處理音頻和視頻的多媒體框架,旨在支持PulseAudio和Jack目前處理的用例[16]

參見

注釋

  1. ^ Ohloh Analysis Summary - PulseAudio. Ohloh. [2009-10-18]. (原始內容存檔於2009-10-18). 
  2. ^ 2.0 2.1 LICENSE. Pulseaudio git. [14 May 2010]. (原始內容存檔於2010年1月7日). 
  3. ^ The Project Formerly Known as Polypaudio. [2023-10-25]. (原始內容存檔於2023-09-30). 
  4. ^ Changes/DefaultPipeWire. [2023-10-25]. (原始內容存檔於2020-11-22). 
  5. ^ Ubuntu 22.10 Makes PipeWire Default for Audio. OMG! Ubuntu. [2023-10-25]. (原始內容存檔於2022-05-22). 
  6. ^ Debian 12 Switches To PipeWire & WirePlumber By Default With The GNOME Desktop. phoronix. [2023-10-25]. (原始內容存檔於2022-10-01). 
  7. ^ Interviews/LennartPoettering - FedoraProject. FedoraProject. [2009-07-03]. (原始內容存檔於2009-10-18). 
  8. ^ Pulse Audio wiki. PulseAudio. [2009-07-19]. (原始內容存檔於2009-10-18). 
  9. ^ Open source identity: PulseAudio creator Lennart Poettering, TechWorld, 8 October 2009 [2010-11-10], (原始內容存檔於2011-04-06) .
  10. ^ LPC: Linux audio: it's a mess. Lwn.net. [2009-07-03]. (原始內容存檔於2009-10-18). 
  11. ^ Lennart Poettering. PulseAudio FUD. 0pointer.de. 18 July 2008 [2009-12-30]. (原始內容存檔於2009-10-18). 
  12. ^ HOWTO: PulseAudio Fixes & System-Wide Equalizer Support. Ubuntu Forums. 2008-05-10 [2009-10-18]. (原始內容存檔於2009-10-18). 
  13. ^ I'll Break Your Audio. Lennart Poettering Blog. 19 October 2009 [26 December 2009]. (原始內容存檔於2009-10-22). 
  14. ^ No sound after running Flash, YouTube, etc. (pulseaudio solution). Ubuntu Forums. [2009-10-18]. (原始內容存檔於2009-10-18). 
  15. ^ PulseAudio - Ubuntu Wiki. Ubuntu Wiki. [2009-10-18]. (原始內容存檔於2009-10-18). 
  16. ^ On the Road to Fedora Workstation 31. [2023-10-25]. (原始內容存檔於2023-09-30). 

外部連結