Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

PulseAudio - это программа звукового сервера с возможностью подключения к сети, распространяемая через проект freedesktop.org . Он работает в основном в Linux , различных дистрибутивах BSD, таких как FreeBSD и OpenBSD , macOS , а также в дистрибутивах Illumos и операционной системе Solaris . Microsoft Windows ранее поддерживалась через MinGW (реализация цепочки инструментов GNU , которая включает в себя различные инструменты, такие как GCC и binutils). Однако порт Windows не обновлялся с 2011 года. [5]

PulseAudio - бесплатное программное обеспечение с открытым исходным кодом , которое распространяется на условиях Стандартной общественной лицензии ограниченного применения GNU версии 2.1. [4]

Он был создан в 2004 году под названием Polypaudio, но в 2006 году был переименован в PulseAudio. [6]

Архитектура программного обеспечения [ править ]

Схема работы PulseAudio
PulseAudio - это демон, который выполняет микширование программного обеспечения.

В широком смысле ALSA - это подсистема ядра, которая предоставляет драйвер звукового оборудования, а PulseAudio - это механизм интерфейса между приложениями и ALSA.

PulseAudio действует как звуковой сервер, где создается фоновый процесс, принимающий звуковой ввод от одного или нескольких источников (процессов, устройств захвата и т. Д.). Затем фоновый процесс перенаправляет эти источники звука на один или несколько приемников (звуковые карты, удаленные сетевые серверы PulseAudio или другие процессы). [7]

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

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

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

libcanberra [ править ]

libcanberra - это абстрактный API для звуков событий рабочего стола и полная замена «API кэша примеров PulseAudio»:

  • Соответствует спецификациям звуковой темы и именования XDG .
  • Определяет простой абстрактный интерфейс для воспроизведения звуков событий. [8]
  • Взаимодействует с ALSA через libasound. [9]
  • Имеет серверную часть для PulseAudio. [10]

libSydney [ править ]

libSydney является полной заменой «API потоковой передачи PulseAudio», и в планах libSydney в конечном итоге стать единственным аудио API, используемым в PulseAudio. [11]

Особенности [ править ]

Основные функции PulseAudio: [7]

  • Регулировка громкости для каждого приложения. [12]
  • Расширяемая архитектура плагинов с поддержкой загружаемых модулей.
  • Совместимость со многими популярными аудиоприложениями. [13]
  • Поддержка нескольких аудиоисточников и приемников.
  • Нулевой копия архитектура памяти для повышения эффективности ресурсов процессора.
  • Возможность обнаруживать другие компьютеры с помощью PulseAudio в локальной сети и воспроизводить звук напрямую через их динамики.
  • Возможность изменить, какие приложения устройства вывода используют для воспроизведения звука во время воспроизведения звука (приложения не должны поддерживать это, PulseAudio может делать это без обнаружения приложениями, что это произошло)
  • Интерфейс командной строки с возможностью написания сценариев.
  • Звуковой демон с возможностью реконфигурации командной строки.
  • Встроенные возможности преобразования и повторной выборки.
  • Возможность объединить несколько звуковых карт в одну.
  • Возможность синхронизировать несколько потоков воспроизведения.
  • Поддержка аудиоустройств Bluetooth с возможностью динамического обнаружения.
  • Возможность включения общесистемной эквализации .

Принятие [ править ]

PulseAudio впервые появился для обычных пользователей в Fedora Linux , начиная с версии 8, [14] затем был принят в основных дистрибутивах Linux, таких как Ubuntu , Debian , [15] Mandriva Linux и openSUSE . В проекте GNOME , а также в KDE имеется поддержка PulseAudio , поскольку он интегрирован в рабочие области Plasma , добавляя поддержку Phonon (мультимедийная структура KDE) и KMix (встроенное приложение микшера), а также графический интерфейс «Настройка динамика ». для помощи в настройке многоканальных динамиков. PulseAudio также доступен вРаспространение Illumos OpenIndiana , включенное по умолчанию в среде рабочего стола MATE .

Различные мобильные устройства на базе Linux , включая Nokia N900 , Nokia N9 и Palm Pre [16], используют PulseAudio.

Tizen , мобильная операционная система с открытым исходным кодом, которая является проектом Linux Foundation и управляется Технической руководящей группой (TSG), состоящей из Intel и Samsung , использует PulseAudio.

Проблемы на этапе принятия [ править ]

  • Portaudio API несовместим с дизайном PulseAudio и нужно изменить. [17] Почти все пакеты, использующие OSS, и многие пакеты, использующие ALSA, нуждались в модификации для поддержки PulseAudio. [18] Дальнейшее развитие функции звука без сбоев потребовало полной переписывания ядра PulseAudio, а также изменений в API ALSA и внутреннем устройстве. [19] [20]
  • Когда разработчик PulseAudio Леннарт Поеттеринг (также создатель systemd ) впервые был принят в дистрибутивы, он описал его как «программное обеспечение, которое в настоящее время ломает ваш звук». [21] Позже Поеттеринг утверждал, что « Ubuntu не очень хорошо справился с работой. Они не сделали свою домашнюю работу», приняв PulseAudio [22] для Ubuntu «Hardy Heron» (8.04), и эта проблема была устранена в последующем Ubuntu. выпускает. [23] Однако в октябре 2009 года Поеттеринг сообщил, что он все еще недоволен интеграцией PulseAudio в Ubuntu. [24]
  • Взаимодействие со старыми звуковыми компонентами определенным программным обеспечением: некоторые программы, такие как Adobe Flash для Linux, вызывали нестабильность в PulseAudio. [25] [26] Новые реализации плагинов Flash не требуют конфликтующих элементов, и в результате Flash и PulseAudio теперь совместимы.
  • Раннее управление переполнением / опустошением буфера: более ранние версии PulseAudio иногда начинали искажать обработанный звук из-за неправильной обработки переполнения / опустошения буфера. [27]

Связанное программное обеспечение [ править ]

Другие звуковые серверы [ править ]

JACK - это звуковой сервер, который обеспечивает воспроизведение звука в реальном времени с низкой задержкой (т.е. 5 миллисекунд или меньше) и, начиная с JACK2, поддерживает эффективную балансировку нагрузки за счет использования симметричной многопроцессорной обработки ; то есть нагрузка всех аудиоклиентов может быть распределена между несколькими процессорами. JACK - предпочтительный звуковой сервер для профессиональных звуковых приложений, таких как Ardor , ReZound и LinuxSampler ; несколько бесплатных дистрибутивов для производства аудио используют его в качестве звукового сервера по умолчанию.

JACK и PulseAudio могут сосуществовать: пока JACK запущен, PulseAudio может автоматически подключаться как клиент JACK, позволяя клиентам PulseAudio создавать и записывать звук одновременно с клиентами JACK. [28]

PipeWire - это аудио- и видеосервер, который «нацелен на поддержку сценариев использования, которые в настоящее время обрабатываются как PulseAudio, так и Jack». [29] [30]

Общая звуковая инфраструктура [ править ]

До JACK и PulseAudio звуком в этих системах управляли универсальные интегрированные аудиорешения. Эти решения не полностью охватывают процесс микширования и потоковой передачи звука, но они все еще используются JACK и PulseAudio для отправки окончательного аудиопотока на звуковую карту.

  • ALSA предоставляет программный микшер под названием dmix, который был разработан до PulseAudio. Это доступно почти во всех дистрибутивах Linux и представляет собой более простое решение для микширования звука PCM. Он не предоставляет расширенных функций (таких как планирование на основе таймера и сетевой звук) PulseAudio. С другой стороны, ALSA предлагает в сочетании с соответствующими звуковыми картами и программным обеспечением низкие задержки.
  • OSS была исходной звуковой системой, которая использовалась в Linux и других операционных системах Unix, но устарела после ядра Linux 2.5. [31] Частную разработку продолжила компания 4Front Technologies , которая в июле 2007 года выпустила исходные тексты OSS под CDDL для OpenSolaris и под GPL для Linux . [32] Современная реализация Open Sound System v4 обеспечивает программное микширование, повторную выборку и изменение громкости для каждого приложения; в отличие от PulseAudio эти функции реализованы в ядре. Поддержка PulseAudio в OpenIndiana и других иллюминахдистрибутивы полагаются на реализацию OSS в ядре (" Boomer" ).

См. Также [ править ]

  • ПортАудио
  • Сравнение бесплатных программ для аудио
  • Список аудио программного обеспечения Linux

Ссылки [ править ]

  1. ^ "OldNews" . freedesktop.org .
  2. ^ Каскинен, Тана (16 января 2021). «PulseAudio 14.2» . Pulseaudio-Discussion (Список рассылки) . Проверено 16 января 2021 года .
  3. ^ "PulseAudio" , сводка анализа , Open Hub
  4. ^ a b «Лицензия» , PulseAudio git , Бесплатный рабочий стол , заархивировано из оригинала 4 марта 2014 г. , получено 16 июня 2011 г.
  5. ^ PulseAudio в Windows
  6. ^ Проект, ранее известный как Polypaudio
  7. ^ a b "About" , PulseAudio , Free desktop , дата обращения 11 марта 2013 г.
  8. ^ [email protected], Debian Webmaster. «Debian - Результаты поиска пакетов - libcanberra» . packages.debian.org .
  9. ^ [email protected], Debian Webmaster. «Debian - Результаты поиска пакетов - libasound» . packages.debian.org .
  10. ^ [email protected], Debian Webmaster. «Debian - Результаты поиска пакетов - libcanberra-pulse» . packages.debian.org .
  11. ^ Поттеринг, Леннарт (8 февраля 2007). "Резюме FOMS / LCA" . 0pointer.de . Проверено 13 марта 2017 года .
  12. ^ Поттеринг, Леннарт, "Интервью", Проект Fedora , Red Hat , извлекаться 3 Июля 2009
  13. ^ Pulse Audio wiki , PulseAudio, заархивировано из оригинала 18 октября 2009 г. , извлечено 19 июля 2009 г.
  14. ^ "LPC: Linux audio: это беспорядок [LWN.net]" . 18 сентября 2008 . Дата обращения 11 июля 2019 .
  15. ^ PulseAudio , Debian, заархивировано из оригинала (вики) 9 ноября 2013 г. , извлечено 9 ноября 2013 г.
  16. ^ "Открытый исходный код: создатель PulseAudio Леннарт Поеттеринг" , TechWorld , 8 октября 2009 г.
  17. ^ Поттеринг, Леннарт (25 сентября 2004). «Написание драйвера для PortAudio» . audio.portaudio.devel . git.net . Проверено 28 февраля 2017 года .
  18. ^ Poettering, Леннарт. «PulseAudio теперь включен по умолчанию при новых установках Fedora» . Fedora Development ML . Красная шляпа . Проверено 1 марта 2017 года .
  19. ^ «Особенности: Аудио без сбоев» . Вики проекта Fedora . Проверено 28 февраля 2017 года .
  20. ^ Poettering, Леннарт. «Вопросы Альзы» . PulseAudio - Trac . Архивировано из оригинального 16 октября 2008 года . Проверено 28 февраля 2017 года .
  21. LPC: Linux audio: It's a mess , LWN, 18 сентября 2008 г., архивировано 18 октября 2009 г. , архивировано 3 июля 2009 г.
  22. ^ Поттеринг (18 июля 2008), PulseAudio FUD , 0pointer.de, архивируются с оригинала на 18 октября 2009 года , получен 30 декабря +2009
  23. ^ Практическое руководство: исправления PulseAudio и общесистемная поддержка эквалайзера , Форумы Ubuntu, 10 мая 2008 г., заархивировано из оригинала 18 октября 2009 г. , извлечено 18 октября 2009 г.
  24. ^ Я сломаю ваше аудио , блог Lennart Poettering, 19 октября 2009 г. , получено 26 декабря 2009 г.
  25. ^ Нет звука после запуска Flash, YouTube и т. Д. (Решение pulseaudio) , Форумы Ubuntu, заархивировано из оригинала 18 октября 2009 г. , получено 18 октября 2009 г.
  26. ^ PulseAudio , Ubuntu Wiki, заархивировано из оригинала 18 октября 2009 г. , извлечено 18 октября 2009 г.
  27. ^ «Чрезмерно оптимистичная буферизация в PulseAudio вызывает недогрузки (слышимое заикание, хлопки)» . Launchpad . Проверено 9 ноября 2013 года .
  28. ^ См. «Загружаемые модули». Modules , Freedesktop.org, https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index9h2 , получено 28 августа 2019 г.
  29. ^ "PipeWire" . pipewire.org .
  30. ^ «На пути к Fedora Workstation 31 - Кристиан Ф.К. Шаллер» .
  31. ^ Введение в звуковые системы и API Linux , Linux.com, 9 августа 2004 г., заархивировано из оригинала 19 октября 2014 г. , получено 23 марта 2013 г. OSS доступен не только для Linux, но также для ОС BSD и других Unix. Это может быть его единственным преимуществом, потому что эта система не очень мощная и была официально заменена ALSA в ядрах 2.5 ...
  32. ^ 4Front technologies выпускает исходный код для открытой звуковой системы , Linux PR, 14 июня 2007 г. , получен 8 января 2012 г..

Внешние ссылки [ править ]

  • Официальный веб-сайт