PulseAudio - PulseAudio

PulseAudio
Логотип PulseAudio
Разработчики)Леннарт Поеттеринг
Пьер Оссман
Шахмс Э. Кинг
Тану Каскинен
Колин Гатри
Арун Рагхаван
Дэвид Хеннингссон
изначальный выпуск17 июля 2004 г.; 16 лет назад (2004-07-17)[1]
Стабильный выпуск
14.0[2] / 23 ноября 2020; 5 дней назад (2020-11-23)
Репозиторийgitlab.freedesktop.org/ pulseaudio/ pulseaudio
Написано вC[3]
Операционная системаFreeBSD, NetBSD, OpenBSD, Linux, Иллюмос, Солярис, macOS, и Майкрософт Виндоус (не поддерживается)
ПлатформаРУКА, PowerPC, x86 / IA-32, x86-64, и MIPS
ТипЗвуковой сервер
ЛицензияСтандартная общественная лицензия ограниченного применения GNU 2.1[4]
Интернет сайтpulseaudio.org

PulseAudio является сетевым звуковой сервер программа распространяется через freedesktop.org проект. Он работает в основном на Linux, разные BSD такие дистрибутивы, как FreeBSD и OpenBSD, macOS, а также Иллюмос распределения и Солярис Операционная система. Майкрософт Виндоус ранее поддерживался через 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 достигает этого, предоставляя адаптеры для приложений, использующих другие аудиосистемы, например АРТ и ESD.

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

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

libcanberra

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

libСидней

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

Функции

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

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

Принятие

PulseAudio впервые появился для обычных пользователей в Fedora Linux, начиная с версии 8,[14] затем был принят в основных дистрибутивах Linux, таких как Ubuntu, Debian,[15] Mageia, Mandriva Linux, Linux Mint, openSUSE, и OpenWrt.[16] Есть поддержка PulseAudio в ГНОМ проект, а также в KDE, поскольку он интегрирован в Рабочие места Plasma, добавляя поддержку Фонон (мультимедийный фреймворк KDE) и KMix (встроенное приложение микшера), а также графический интерфейс «Speaker Setup» для помощи в настройке многоканальных динамиков. PulseAudio также доступен в Иллюмос распределение OpenIndiana, и включен по умолчанию в его ПРИЯТЕЛЬ среда.

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

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

Проблемы на этапе принятия

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

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

Другие звуковые серверы

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

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

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

Общая аудио-инфраструктура

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

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

Смотрите также

Рекомендации

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

внешняя ссылка