ПульсАудио
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
![]() | |
![]() Скриншот | |
Разработчик(и) |
|
---|---|
Первоначальный выпуск | 17 июля 2004 г [1] |
Стабильная версия | 17.0 [2] / 12 января 2024 г |
Репозиторий | gitlab |
Написано в | С [3] |
Операционная система | FreeBSD , NetBSD , OpenBSD , Linux , Illumos , Solaris , macOS и Microsoft Windows (не поддерживается) |
Платформа | ARM , PowerPC , x86 / IA-32 , x86-64 и MIPS |
Тип | Звуковой сервер |
Лицензия | LGPL-2.1 или более поздняя версия [4] |
Веб-сайт | pulseaudio.org |
PulseAudio с возможностью сетевого подключения, — это программа звукового сервера распространяемая через проект freedesktop.org . Он работает в основном на Linux , включая подсистему Windows для Linux в Microsoft Windows и Termux на Android ; различные дистрибутивы BSD , такие как FreeBSD , OpenBSD и macOS ; а также дистрибутивы Illumos и Solaris операционную систему . Он служит промежуточным программным обеспечением между приложениями и оборудованием и обрабатывает необработанные аудиопотоки PCM . [5]
PulseAudio — это бесплатное программное обеспечение с открытым исходным кодом , лицензированное в соответствии с условиями LGPL-2.1 или более поздней версии . [4]
Он был создан в 2004 году под названием Polypaudio, но в 2006 году был переименован в PulseAudio. [6]
PulseAudio конкурирует с более новым PipeWire , который предоставляет совместимый сервер PulseAudio (известный как Pipewire-Pulse), и PipeWire теперь используется по умолчанию во многих дистрибутивах Linux, включая Fedora Linux , Ubuntu и Debian . [7] [8] [9]
Поддержка Microsoft Windows
[ редактировать ]В Microsoft Windows PulseAudio работает в подсистеме Windows для Linux .
Ядро NT ранее поддерживалось через MinGW (реализация набора инструментов GNU , включающая в себя различные инструменты, такие как GCC и binutils ). Однако порт ядра NT не обновлялся с 2011 года. [10]
Архитектура программного обеспечения
[ редактировать ]

В широком смысле 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 .
Различные Linux мобильные устройства на базе , включая Nokia N900 , Nokia N9 и Palm Pre. [20] используйте ПульсАудио.
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» ).
См. также
[ редактировать ]- Сравнение бесплатного программного обеспечения для аудио
- Список аудиопрограмм для Linux
- ТрубаПроволока
- ПортАудио
Ссылки
[ редактировать ]- ^ «ОлдНьюс» . сайт freedesktop.org .
- ^ «PulseAudio 17.0 · PulseAudio / PulseAudio · GitLab» . ГитЛаб . Проверено 13 января 2024 г.
- ^ «PulseAudio» , Сводка анализа , Open Hub
- ^ Перейти обратно: а б «Лицензия» , PulseAudio git , Free Desktop , заархивировано из оригинала 4 марта 2014 г. , получено 16 июня 2011 г.
- ^ «Поддерживаемые аудиоформаты» . www.freedesktop.org . Проверено 13 мая 2023 г.
- ^ Проект, ранее известный как Polypaudio
- ^ «Изменения/DefaultPipeWire — Wiki проекта Fedora» . Fedoraproject.org . Проверено 13 февраля 2023 г.
- ^ Снеддон, Джоуи (22 мая 2022 г.). «В Ubuntu 22.10 PipeWire используется по умолчанию для аудио» . МОЙ БОГ! Убунту! . Проверено 13 февраля 2023 г.
- ^ «Debian 12 переключается на PipeWire и WirePlumber по умолчанию с рабочего стола GNOME» . www.phoronix.com . Проверено 13 февраля 2023 г.
- ^ ПульсАудио в Windows
- ^ Перейти обратно: а б «О программе» , PulseAudio , Бесплатный рабочий стол , получено 11 марта 2013 г.
- ^ «Debian — Результаты поиска пакетов — libcanberra» . packages.debian.org .
- ^ «Debian — Результаты поиска пакетов — libasound» . packages.debian.org .
- ^ «Debian — Результаты поиска пакетов — libcanberra-pulse» . packages.debian.org .
- ^ Пёттеринг, Леннарт (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 audio: это беспорядок , 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 и т. д. (решение пульсаудио) , Форумы 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/Software/PulseAudio/Documentation/User/Modules/#index9h2 , получено 28 августа 2019 г.
- ^ «ПайпВайр» . Pipewire.org .
- ^ «На пути к Fedora Workstation 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 г.
Внешние ссылки
[ редактировать ]