PulseAudio 是一个用于Linux和其他类UNIX操作系统的开源网络声音服务器。它是从头开始设计的,为用户提供旧ESOUND(Enlightened Sound Daemon)的可靠替代品。
它是一个模块化的声音服务器
作为任何计算环境中非常重要的一部分,声音服务器主要用于多个音频流的软件混合,通用硬件和声音API抽象,以及网络透明性。它是一个模块化声音服务器,包含许多插件模块,用于支持声音协议,声音设备,X Window系统,蓝牙,JACK连接,RTP,SAP和SDP传输,音量控制,滤波器以及各种协议。
可扩展的插件架构
即使其插件架构是可扩展的,它还支持静态链接和模块自动加载,多个源或接收器,客户端延迟插值,可接受的低延迟功能以及样本类型重新采样和转换。对于录音和回放,该项目提供非常准确的延迟测量。它可以轻松嵌入到其他程序中,具有“零拷贝”架构和简单的命令行界面,允许有经验的用户在守护进程运行时设置守护进程。
在引擎盖下
在幕后,PulseAudio包括一个完全异步的C API(应用程序编程接口),两个同步API和几个网络音频流选项。声音服务器可用于轻松混合多个声卡并同时同步多个播放流。一些开源项目提供对PulseAudio声音服务器的支持,例如ALSA,LiVES,MPD,MPlayer,xine,VLC Media Player和SXEmacs。
支持任何现代发行 Linux
目前,任何现代Linux发行版以及FreeBSD,NetBSD,Solaris,Mac OS X和Microsoft Windows(Win32)操作系统都支持PluseAudio。它也是众多知名Linux操作系统的默认声音服务器,可以通过PulseAudio音量控制和PulseAudio首选项图形应用程序轻松配置。
这是什么新内容 :
- 12.1的tarball包含一个损坏的配置脚本(在启用gsettings时构建失败),所以不要使用它!使用PulseAudio 12.2,它更好!除了使用工作配置脚本和更新的NEWS文件的重新生成的tarball之外,没有任何更改。
版本11.1中的新功能:
- 使用A2DP蓝牙配置文件获得更好的延迟报告(以及更好的A / V同步)
- 为AirPlay设备提供更准确的延迟报告
- 修复了英特尔HDMI LPE的崩溃或CPU使用率高的问题
- module-switch-on-connect现在忽略虚拟设备
- 使用passthrough进行压缩音频时,请设置“非音频”。位
- 优先考虑通过S / PDIF输出的HDMI输出
- HSP支持更多蓝牙耳机
- 默认选择A2DP蓝牙配置文件而不是HSP
- 新“sink_input_properties” module-ladspa-sink的模块参数
- 新“use_system_clock_for_timing” module-pipe-sink的模块参数
- module-pipe-sink现在可以使用现有管道
- Steelseries Arctis 7 USB耳机立体声输出支持
- Dell Thunderbolt Dock TB16扬声器插孔支持
- 修复了某些USB声卡的数字输入支持
- 修复了Native Instruments Traktor Audio 6 detection
- 能够在macOS上禁用输入或输出
- 新“dereverb” Speex回声消除器的选项
- 新模块:module-always-source
- 系统模式下所有用户无法读取的状态文件
- module-augment-properties现在使用XDG_DATA_DIRS查找.desktop文件
- Vala绑定的更新
- 现在可以避免GConf依赖
- qpaeq许可证从AGPL更改为LGPL
- qpaeq移植到Qt 5
- 与glibc 2.27的兼容性
- 如果禁用esound支持,则不再安装esdcompat工具
版本中的新功能:
- 自动路由改进
- 波束成形和WebRTC回声消除器中的各种其他新功能
- 模块角色软木和模块角色扮演的各种改进
- 默认情况下禁用LFE重新混音
- memfd支持的共享内存传输
- 支持高达384 kHz的采样率
- webrtc-audio-processing依赖最小版本碰到了0.2
- 将C标准从C99更改为C11。
8.0版中的新功能:
- 自动路由更有可能更改个人资料
- OS X和NetBSD支持改进
- 客户的系统日记记录
- 新LFE平衡编程界面
- 模块 - dbus协议改进
- 更灵活的配置文件处理
- pulsecore-8.0.so移动到私人目录
- 衡量内存消耗的新脚本
- 各种错误修复和小改进
7.1版中的新功能:
- 使用srbchannel时修复崩溃
- 修复导致符号链接出现在 中的构建系统错误
- 让Xonar卡更好用
- 其他小错误修复和改进
版本7.0中的新功能:
- 使用低通滤波的LFE通道合成
- 基于新的基于libsoxr的重新采样器
- TCP的套接字激活支持
- “srbchannel”默认情况下启用IPC机制
- 使用UCM时更灵活的插孔检测支持
- 因SIGTERM而退出不被视为失败
- 更好地支持Creative SoundBlaster Omni Surround 5.1
6.0版中的新功能:
- BlueZ 5本机HSP(耳机)支持
- 通过oFono 支持BlueZ 5 HFP(免提)配置文件
- systemd套接字激活支持
- 更好地支持多渠道和2.1个人资料
- 重新映射优化
- 许多小改进,错误修复和i18n更新
版本4.0中的新功能:
- 更好地处理低延迟请求
- 混音时的优化(通用,ARM NEON)
- 默认重新采样器现在是speex-float-1(CPU使用率较低)
- 主要的蓝牙重构,更好的可靠性和更轻松的维护
- 修复与JACK的优雅交接
- 基于流角色应用闪避的新模块
- 回声消除器基础架构修复
- 命令行工具的Bash和zsh完成
- Solaris和OS X修复
- 许多其他增强功能,错误修复,文档和i18n更新
3.0版中的新功能:
- ALSA用例管理器(UCM)支持:
- 台式机和笔记本电脑上的音频硬件通常足以让PulseAudio使用一组通用配置文件进行处理。例如情况不同手机和平板电脑。实际上所有这些设备都需要单独的配置文件来描述硬件,以便PulseAudio可以正确使用硬件的所有基本功能。配置可以作为PulseAudio配置文件提供,但ALSA人员一直致力于一个允许应用程序(如PulseAudio)使用硬件而无需在应用程序中进行任何额外配置的系统。该系统称为UCM,PulseAudio现在支持它。
- 运行时可编辑LADSPA过滤器参数:
- LADSPA模块现在公开了一个基本的D-Bus接口,用于动态更改过滤器参数。以前,加载过滤器后无法更改参数。
- 对蓝牙资源的开箱即用支持:
- PulseAudio可用于蓝牙耳机,例如将笔记本电脑连接到手机并假装笔记本电脑是耳机。在这种情况下,通常需要将音频从手机环回到笔记本电脑的声卡。现在由module-bluetooth-policy自动完成,默认加载。但是,用户确实需要在其BlueZ配置中启用Source支持。
- ARM NEON优化:
- 使用ARM NEON指令为S16LE和浮点格式之间的样本格式转换添加了优化。在编译时(基于FPU标志)以及运行时(基于/ proc / cpuinfo)检测对这些的支持。作为这项工作的一部分,为未来增加更多NEON优化奠定了基础。
- 可配置设备延迟偏移:
- 准确的延迟报告对于例如“唇同步”在视频播放中。 PulseAudio依靠音频硬件提供有关音频延迟的准确信息。如果由于某种原因该信息不准确,现在可以配置一个偏移量来应用于每个延迟报告,这要归功于Damir Jelic的Google Summer of Code工作。例如,如果您正在观看视频并且使用蓝牙耳机进行音频输出,则唇形同步可能有点偏差,因为PulseAudio目前没有适当的支持来查询蓝牙设备的延迟。使用即将推出的pavucontrol版本,您将能够通过调整蓝牙耳机的延迟偏移来解决同步问题。
- 遵守XDG基本目录规范:
- 配置文件的位置已从〜/ .pulse移动到〜/ .config / pulse(或者如果设置了$ XDG_CONFIG_HOME,则使用该位置)。但是,如果存在〜/ .pulse,它仍将被使用,以便在更新PulseAudio时不会丢失用户配置。身份验证cookie也已从〜/ .pulse-cookie移至〜/ .config / pulse / cookie。
- 运行时文件的位置(即不需要在重新启动时保留的文件,例如套接字)已从/ tmp下的随机目录移动到$ XDG_RUNTIME_DIR / pulse。如果未设置$ XDG_RUNTIME_DIR,旧方案仍将用作后备。
- 各种ALSA变更:
- 2.0中的回归,可能导致某些机器没有“扬声器”或“内部麦克风”或当与Linux 3.6或更高版本一起使用时,端口大多已固定在3.0中。此外,旧内核的解决方法适用于某些最常见的计算机。
- Pierre-Louis Bossart通过原子方式查询大量ALSA时序参数,引入了一项改进措施,以提高时间戳查询的准确性,从而提高基于计时器的时间安排。
- 我们已将图标名称属性添加到ALSA端口,这可以帮助UI制造商显示更好的每端口图标。
- 此外,还有一些其他更改,例如删除麻烦的lfe-on-mono端口,以及添加更多混音器控件名称以更好地与内核保持同步。
- 自动测试的改进:
- Deng Zhengrong改进了PulseAudio的自动测试支持,作为他的Google Summer of Code工作的一部分。这些改进包括支持使用gcov进行测试覆盖率报告,更改现有测试以使用“检查”功能。框架,并且可以在运行正常守护程序的同时启动PulseAudio守护程序以进行测试。
- 按名称卸载模块:
- pactl和pacmd现在支持按名称卸载模块。以前卸载只能通过模块索引来完成,这有点不方便,因为通常你不知道索引而不以某种方式首先查找它。
- 记录改进:
- 除了自动测试改进之外,GSoC学生邓还在PulseAudio的测井设施上工作。现在可以使用set-log-target命令使用pacmd更改正在运行的守护程序的日志目标。此外,还添加了新的日志目标类型:“newfile”。 “新文件” target就像旧的“文件”一样。目标,区别在于,如果给定的文件名已经存在,则不会覆盖该文件,而是创建带有编号后缀的新文件。
- 蓝牙代码重构:
- 蓝牙模块已经进行了大量的重构工作,为即将推出的BlueZ 5支持做准备,并使代码更加愉快。这些不是用户直接看到的变化,但我们想借此机会感谢Mikel Astiz,感谢他所做的出色工作。
- 后续步骤:
- 开发一如既往地继续发展,4.0发布的目标是在4月份发布(到目前为止,我们还没有很好地维持4个月的发布周期,所以请稍等一下)。 PulseConf 2012的报告提供了一些关于接下来会发生什么的线索。
版本2.0中的新功能:
- 替代采样率
- 杰克检测
- 回声消除:WebRTC消除器,自动增益控制,漂移补偿
- 虚拟环绕声模块
- Xen半虚拟化音频接收器
- 修正了HURD支持
- A2DP解码器质量改进
版本0.9.17中的新功能:
- Lennart Poettering(13):
- libpulse:添加新的错误代码PA_ERR_BUSY
- alsa:正确转换样本缓冲区大小
- alsa:正确报告暂停错误代码
- i18n:将ja添加到LINGUAS
- i18n:运行make update-po
- build-sys:增加库版本
- doxygen:删除对pacat.c和paplay.c的引用作为例子,因为tehy没有用,因为paplay不再存在
- doxygen:将rtclock.h添加到文档
- doxygen:不要将doxygen与虚假混淆..
- proplist:定义存储窗口位置的属性
- position-event-sounds:设置荣誉窗口位置,垂直和水平放置
- 核心:添加在重新采样后应用的额外音量因子
- position-event-sounds:在重新采样之后而不是重新采样之前应用音量因子
- amitakhya(1):
- 为阿萨姆语发送翻译
- anipeter(1):
- 发送马拉雅拉姆语翻译
- hyuuga(1):
- 发送po / ja.po 的翻译
- ifelix(1):
- 发送泰米尔语翻译
- jassy(1):
- 为旁遮普语发送翻译
- kkrothap(1):
评论没有发现