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). 

外部链接