PulseAudio

PulseAudio
Скриншот программы PulseAudio
Тип Звуковой сервер, библиотека функций и демон
Разработчик Леннарт Пёттеринг
Написана на Си[3]
Операционные системы FreeBSD[4], Linux[4], Solaris[4], Windows[4] и macOS[4]
Первый выпуск 17 июля 2004[1]
Последняя версия
Репозиторий gitlab.freedesktop.org/p…
Лицензия GNU LGPL[3]
Сайт freedesktop.org/w… (англ.)
Логотип Викисклада Медиафайлы на Викискладе

PulseAudio (ранее PolypAudio) — кроссплатформенный звуковой сервер, созданный в качестве улучшенной замены таких серверов, как ESD, ARts.

Работает на платформах POSIX, таких как Linux, Solaris и FreeBSD, а также на платформе Microsoft Windows. PulseAudio является свободным программным обеспечением: сервер распространяется под лицензией GNU GPL, а библиотеки — под GNU LGPL. Основной разработчик — Леннарт Пёттеринг.

Схема работы PulseAudio в Linux

PulseAudio принимает звук от одного или нескольких источников (процессов или устройств) и направляет одному или нескольким приёмникам (звуковым платам, серверам PulseAudio или процессам). Одной из основных целей проекта является предоставление возможности перенаправления любых звуковых потоков, включая и потоки от процессов, требующих прямого доступа к аудиоустройствам (например, старая OSS). Это достигается с помощью специальных псевдоустройств, работающих непосредственно с другими звуковыми системами, такими как aRts или ESD.

В Linux пользователь может настроить систему ALSA так, чтобы она использовала виртуальное устройство, созданное сервером PulseAudio. Тогда программы, работающие со звуком через драйвер ALSA, будут на самом деле иметь дело с PulseAudio, который взаимодействует с помощью ALSA уже с реальным устройством.

Также PulseAudio предоставляет собственный интерфейс для приложений, аналогичный интерфейсу ESD, через который они могут работать напрямую с сервером, что делает его полноценной заменой ESD. Для приложений OSS PulseAudio предоставляет утилиту padsp, создающую файлы типа /dev/dsp, через которые программа работает со звуковым сервером.

Основные возможности:

  • раздельная установка уровней громкости для разных программ[5];
  • смешивание потоков от разных звуковых плат;
  • расширяемая модульная система с поддержкой динамически загружаемых библиотек;
  • совместимость со многими популярными аудиоприложениями;
  • работа с несколькими источниками и приёмниками звука;
  • приемлемая для повседневного непрофессионального использования задержка и возможность ею управлять[6];
  • использование технологии zero-copy, сберегающей машинное время;
  • интерфейс командной строки с возможностью использования сценариев;
  • демон, перенастраиваемый с помощью командной строки;
  • встроенное преобразование аудиоформатов;
  • синхронизация потоков воспроизведения;
  • смешиваемые потоки могут иметь разные частотные характеристики;
  • эффективный микшер, даже для звуковых плат без микшера, предотвращающий «монополизацию» звукового устройства отдельной программой.

Примечания

  1. Version 0.1 http:// freedesktop.org/software/pulseaudio/releases/polypaudio-0.1.tar.gz released
  2. [ANNOUNCE PulseAudio 17.0] — 2024.
  3. 1 2 http://www.freedesktop.org/wiki/Software/PulseAudio/About/
  4. 1 2 3 4 5 https://www.freedesktop.org/wiki/Software/PulseAudio/About/
  5. Interviews/LennartPoettering — FedoraProject Архивная копия от 31 августа 2009 на Wayback Machine (англ.)
  6. Lennart Pottering. PulseAudio and Jack (англ.). Дата обращения: 25 сентября 2015. Архивировано 25 сентября 2015 года.

Ссылки

  • Официальный сайт (англ.)
  • Детализированные инструкции подгонки под все программы  (англ.)
  • Статья про запуск PulseAudio в среде Gnome
Перейти к шаблону «Звуковые серверы»
Основные
Core Audio
JACK Audio Connection Kit
PipeWire
PulseAudio
WASAPI
Устаревшие