Он был создан в 2004 году под названием Polypaudio, но в 2006 году был переименован в PulseAudio. [6]
PulseAudio конкурирует с более новым PipeWire , который предоставляет совместимый сервер PulseAudio (известный как Pipewire-Pulse), и PipeWire теперь используется по умолчанию во многих дистрибутивах Linux, включая Fedora Linux , Ubuntu и Debian . [7] [8] [9]
Ядро NT ранее поддерживалось через MinGW (реализация набора инструментов GNU , включающая в себя различные инструменты, такие как GCC и binutils ). Однако порт ядра NT не обновлялся с 2011 года. [10]
Архитектура программного обеспечения
Блок-схема работы PulseAudioPulseAudio — это демон, который выполняет микширование в программном обеспечении.
В широком смысле ALSA — это подсистема ядра, обеспечивающая драйвер звукового оборудования, а PulseAudio — это механизм интерфейса между приложениями и ALSA. Однако его использование не является обязательным, и звук по-прежнему можно воспроизводить и микшировать без PulseAudio.
PulseAudio действует как звуковой сервер, где создается фоновый процесс, принимающий звуковой ввод от одного или нескольких источников (процессов, устройств захвата и т. д.). Затем фоновый процесс перенаправляет эти источники звука на один или несколько приемников (звуковые карты, удаленные сетевые серверы PulseAudio или другие процессы). [11]
Одна из целей PulseAudio — перенаправить через него все звуковые потоки, в том числе от процессов, которые пытаются получить прямой доступ к оборудованию (например, устаревшие приложения OSS ). PulseAudio достигает этого, предоставляя адаптеры для приложений, использующих другие аудиосистемы, такие как aRts и ESD .
В типичном сценарии установки в Linux пользователь настраивает ALSA на использование виртуального устройства, предоставленного PulseAudio. Таким образом, приложения, использующие ALSA, будут выводить звук в PulseAudio, который затем сам использует ALSA для доступа к реальной звуковой карте. PulseAudio также предоставляет собственный собственный интерфейс для приложений, которые хотят напрямую поддерживать PulseAudio, а также устаревший интерфейс для приложений ESD, что делает его подходящим в качестве полной замены ESD.
Для приложений OSS PulseAudio предоставляет padspутилиту, которая заменяет файлы устройств, такие как /dev/dsp, заставляя приложения поверить в то, что они имеют эксклюзивный контроль над звуковой картой. На самом деле их вывод перенаправляется через PulseAudio.
Библиотека Канберра
libcanberra — это абстрактный API для звуков событий рабочего стола и полная замена «API кэша образцов PulseAudio»:
Соответствует звуковой теме XDG и спецификациям именования.
Определяет простой абстрактный интерфейс для воспроизведения звуков событий. [12]
Взаимодействует с ALSA через libasound. [13]
Имеет серверную часть PulseAudio. [14]
libСидней
libSydney является полной заменой «API потоковой передачи PulseAudio», и планировалось, что libSydney в конечном итоге станет единственным аудио API, используемым в PulseAudio. [15]
Функции
Основные функции PulseAudio включают в себя: [11]
Регулировка громкости для каждого приложения [16]
Расширяемая архитектура плагинов с поддержкой загружаемых модулей.
Совместимость со многими популярными аудиоприложениями [17]
Поддержка нескольких источников и приемников звука
Архитектура памяти с нулевым копированием для повышения эффективности использования ресурсов процессора
Возможность обнаруживать другие компьютеры с помощью PulseAudio в локальной сети и воспроизводить звук напрямую через их динамики.
Возможность изменить, какие приложения устройства вывода используют для воспроизведения звука во время воспроизведения звука (приложениям не требуется поддерживать это, PulseAudio может делать это без того, чтобы приложения обнаруживали, что это произошло)
Интерфейс командной строки с возможностями сценариев
Звуковой демон с возможностью реконфигурации командной строки.
Встроенные возможности преобразования и повторной выборки
Возможность объединения нескольких звуковых карт в одну.
Возможность синхронизации нескольких потоков воспроизведения
Поддержка аудиоустройств Bluetooth с возможностями динамического обнаружения
PulseAudio впервые появился для обычных пользователей в Fedora Linux , начиная с версии 8, [18] затем был принят основными дистрибутивами Linux, такими как Ubuntu , Debian , [19] Mandriva Linux и openSUSE . Существует поддержка PulseAudio в проекте GNOME , а также в KDE , поскольку он интегрирован в Plasma Workspaces , добавляя поддержку Phonon (мультимедийная платформа KDE) и KMix (интегрированное приложение микшера), а также графический интерфейс «Настройка динамиков». для облегчения настройки многоканальных динамиков. PulseAudio также доступен в дистрибутиве Illumos OpenIndiana и включен по умолчанию в среде рабочего стола MATE .
Tizen , мобильная операционная система с открытым исходным кодом, которая является проектом Linux Foundation и управляется Технической руководящей группой (TSG), состоящей из Intel и Samsung , использует PulseAudio.
Проблемы на этапе внедрения
API PortAudio был несовместим с дизайном PulseAudio, и его необходимо было изменить . [21] Почти все пакеты, использующие OSS, и многие пакеты, использующие ALSA, необходимо было модифицировать для поддержки PulseAudio. [22] Дальнейшее развитие функции звука без сбоев потребовало полной перезаписи ядра PulseAudio, а также потребовались изменения в API и внутренних компонентах ALSA. [23] [24]
Когда он впервые был принят в дистрибутивах, разработчик PulseAudio Леннарт Поеттеринг (также создатель systemd ) описал его как «программное обеспечение, которое в настоящее время нарушает ваш звук». [25] Позже Поеттеринг утверждал, что « Ubuntu не проделала выдающуюся работу. Они не сделали домашнее задание» при внедрении PulseAudio [26] для Ubuntu «Hardy Heron» (8.04), проблема, которая была решена в последующих версиях Ubuntu. релизы. [27] Однако в октябре 2009 года Пёттеринг сообщил, что он по-прежнему недоволен интеграцией PulseAudio в Ubuntu. [28]
Взаимодействие со старыми звуковыми компонентами с помощью определенного программного обеспечения: некоторые программы, такие как Adobe Flash для Linux, вызывали нестабильность в PulseAudio. [29] [30] Новые реализации плагинов Flash не требуют конфликтующих элементов, и в результате Flash и PulseAudio теперь совместимы.
Раннее управление переполнением/недополнением буфера. Более ранние версии PulseAudio иногда начинали искажать обработанный звук из-за неправильной обработки переполнения/недогрузки буфера. [31]
Для пользователей наушников существует вероятность потери слуха из-за шума из-за слишком громкого звука в случае неправильного поведения приложения. [32] [33] [34] [35]
Сопутствующее программное обеспечение
Другие звуковые серверы
JACK — это звуковой сервер, который обеспечивает воспроизведение звука в реальном времени с малой задержкой (т. е. 5 миллисекунд или меньше) и, начиная с JACK2, поддерживает эффективную балансировку нагрузки за счет использования симметричной многопроцессорной обработки ; то есть нагрузка всех аудиоклиентов может быть распределена между несколькими процессорами. JACK — предпочтительный звуковой сервер для профессиональных аудиоприложений, таких как Ardor , ReZound и LinuxSampler ; несколько бесплатных дистрибутивов для создания аудио используют его в качестве аудиосервера по умолчанию.
JACK и PulseAudio могут сосуществовать: пока JACK работает, PulseAudio может автоматически подключаться в качестве клиента JACK, позволяя клиентам PulseAudio создавать и записывать звук одновременно с клиентами JACK. [36]
PipeWire — это аудио- и видеосервер, который «направлен на поддержку вариантов использования, которые в настоящее время обрабатываются как PulseAudio, так и Jack». [37] [38]
Общая аудиоинфраструктура
До появления JACK и PulseAudio звук в этих системах управлялся многофункциональными интегрированными аудиорешениями. Эти решения не полностью охватывают процесс микширования и потоковой передачи звука, но они по-прежнему используются JACK и PulseAudio для отправки окончательного аудиопотока на звуковую карту.
ALSA предоставляет программный микшер под названием dmix, который был разработан до PulseAudio. Он доступен практически во всех дистрибутивах Linux и представляет собой более простое решение для микширования звука PCM. Он не предоставляет расширенные функции (такие как планирование на основе таймера и сетевое аудио) PulseAudio. С другой стороны, ALSA в сочетании с соответствующими звуковыми картами и программным обеспечением обеспечивает низкие задержки.
OSS была исходной звуковой системой, используемой в Linux и других операционных системах Unix, но она была признана устаревшей после ядра Linux 2.5. [39] Собственную разработку продолжила компания 4Front Technologies , которая в июле 2007 года выпустила исходники OSS под CDDL-1.0 для OpenSolaris и под GPL-2.0 — только для Linux . [40] Современная реализация Open Sound System v4 обеспечивает программное микширование, передискретизацию и изменение громкости для каждого приложения; в отличие от PulseAudio, эти функции реализованы внутри ядра. Поддержка PulseAudio в OpenIndiana и других дистрибутивах Illumos основана на встроенной реализации OSS (« Boomer» ).
↑ Пёттеринг, Леннарт (8 февраля 2007 г.). «Резюме FOMS/LCA». 0pointer.de . Проверено 13 марта 2017 г.
↑ Пёттеринг, Леннарт, «Интервью», Fedora Project, Red Hat , получено 3 июля 2009 г.
↑ Вики-сайт Pulse Audio, PulseAudio, заархивировано из оригинала 31 августа 2009 г. , получено 19 июля 2009 г.
^ «LPC: Аудио Linux: это беспорядок [LWN.net]» . 18 сентября 2008 года . Проверено 11 июля 2019 г.
^ PulseAudio, Debian, заархивировано из оригинала (вики) 9 ноября 2013 г. , получено 9 ноября 2013 г.
^ «Идентификация с открытым исходным кодом: создатель PulseAudio Леннарт Поеттеринг», TechWorld , 8 октября 2009 г.
↑ Пёттеринг, Леннарт (25 сентября 2004 г.). «Написание драйвера PortAudio». audio.portaudio.devel . git.net . Проверено 28 февраля 2017 г.
^ Пёттеринг, Леннарт. «PulseAudio теперь включен по умолчанию при новых установках Fedora». Разработка Fedora ML . Красная Шапка . Проверено 1 марта 2017 г.
^ «Особенности: звук без сбоев» . Вики проекта Fedora . Проверено 28 февраля 2017 г.
^ Пёттеринг, Леннарт. «Проблемы Алсы». ПульсАудио — Трек . Архивировано из оригинала 16 октября 2008 года . Проверено 28 февраля 2017 г.
^ LPC: Аудио Linux: это беспорядок, LWN, 18 сентября 2008 г., заархивировано из оригинала 1 сентября 2009 г. , получено 3 июля 2009 г.
↑ Леннарт Поеттеринг (18 июля 2008 г.), PulseAudio FUD, 0pointer.de, заархивировано из оригинала 2 сентября 2009 г. , получено 30 декабря 2009 г.
^ Практическое руководство: исправления PulseAudio и общесистемная поддержка эквалайзера, форумы Ubuntu, 10 мая 2008 г., заархивировано из оригинала 1 марта 2010 г. , получено 18 октября 2009 г.
↑ Я сломаю ваше аудио, блог Леннарта Поеттеринга, 19 октября 2009 г. , получено 26 декабря 2009 г.
^ Нет звука после запуска Flash, YouTube и т. д. (решениеpulsaudio), Форумы Ubuntu, заархивировано из оригинала 29 февраля 2012 г. , получено 18 октября 2009 г.
↑ PulseAudio, Ubuntu Wiki, заархивировано из оригинала 25 февраля 2011 г. , получено 18 октября 2009 г.
^ «Чрезмерно оптимистичная буферизация в PulseAudio вызывает опустошение (слышимое заикание, хлопки)» . Панель запуска . Проверено 9 ноября 2013 г.
^ «46466 — PulseAudio нужен способ, позволяющий пользователю установить неприкосновенную максимальную громкость» . Багзилла . Проверено 6 октября 2021 г.
^ «[РЕШЕНО] отключение PulseAudio — Страница 3» . Вопросы по Linux . Проверено 6 октября 2021 г.
^ «Ошибка № 410948 «Слишком громкая громкость»: Ошибки: пакет PulseAudio». Убунту . Проверено 6 октября 2021 г.
^ «# 837637 — Настройки звука часто сбрасываются до 100% громкости» . Журналы отчетов об ошибках Debian . Проверено 6 октября 2021 г.
^ См. «Загружаемые модули». Модули , Freedesktop.org, https://www.freedesktop.org/wiki/PulseAudio/Software/PulseAudio/Documentation/User/Modules/#index9h2, получено 28 августа 2019 г.
^ "ПайпВайр". Pipewire.org .
^ «На пути к рабочей станции Fedora 31 — Кристиан Ф. К. Шаллер».
^ Введение в звуковые системы и API Linux, Linux.com, 9 августа 2004 г., заархивировано из оригинала 19 октября 2014 г. , получено 23 марта 2013 г. , OSS доступен не только для Linux, но также для ОС BSD и других Unix. Это, пожалуй, единственное ее преимущество, ведь эта система не очень мощная и официально заменена на ALSA в ядрах 2.5...
^ 4Front Technologies выпускает исходный код открытой звуковой системы, Linux PR, 14 июня 2007 г. , получено 8 января 2012 г..
Внешние ссылки
На Викискладе есть медиафайлы, связанные с PulseAudio .