Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Разработчики) | Леннарт Поеттеринг Пьер Оссман Шахмс Э. Кинг Тану Каскинен Колин Гатри Арун Рагхаван Дэвид Хеннингссон |
---|---|
изначальный выпуск | 17 июля 2004 г . [1] |
Стабильный выпуск | 14.2 [2] / 16 января 2021 г . |
Репозиторий | gitlab |
Написано в | C [3] |
Операционная система | FreeBSD , NetBSD , OpenBSD , Linux , Illumos , Solaris , macOS и Microsoft Windows (не поддерживается) |
Платформа | ARM , PowerPC , x86 / IA-32 , x86-64 и MIPS |
Тип | Звуковой сервер |
Лицензия | Стандартная общественная лицензия ограниченного применения GNU 2.1 [4] |
Интернет сайт | pulseaudio.org |
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]
Архитектура программного обеспечения [ править ]
В широком смысле 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
Ссылки [ править ]
- ^ "OldNews" . freedesktop.org .
- ^ Каскинен, Тана (16 января 2021). «PulseAudio 14.2» . Pulseaudio-Discussion (Список рассылки) . Проверено 16 января 2021 года .
- ^ "PulseAudio" , сводка анализа , Open Hub
- ^ a b «Лицензия» , PulseAudio git , Бесплатный рабочий стол , заархивировано из оригинала 4 марта 2014 г. , получено 16 июня 2011 г.
- ^ PulseAudio в Windows
- ^ Проект, ранее известный как Polypaudio
- ^ a b "About" , PulseAudio , Free desktop , дата обращения 11 марта 2013 г.
- ^ [email protected], Debian Webmaster. «Debian - Результаты поиска пакетов - libcanberra» . packages.debian.org .
- ^ [email protected], Debian Webmaster. «Debian - Результаты поиска пакетов - libasound» . packages.debian.org .
- ^ [email protected], Debian Webmaster. «Debian - Результаты поиска пакетов - libcanberra-pulse» . packages.debian.org .
- ^ Поттеринг, Леннарт (8 февраля 2007). "Резюме FOMS / LCA" . 0pointer.de . Проверено 13 марта 2017 года .
- ^ Поттеринг, Леннарт, "Интервью", Проект Fedora , Red Hat , извлекаться 3 Июля 2009
- ^ Pulse Audio wiki , PulseAudio, заархивировано из оригинала 18 октября 2009 г. , извлечено 19 июля 2009 г.
- ^ "LPC: Linux audio: это беспорядок [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 года .
- ^ Poettering, Леннарт. «PulseAudio теперь включен по умолчанию при новых установках Fedora» . Fedora Development ML . Красная шляпа . Проверено 1 марта 2017 года .
- ^ «Особенности: Аудио без сбоев» . Вики проекта Fedora . Проверено 28 февраля 2017 года .
- ^ Poettering, Леннарт. «Вопросы Альзы» . PulseAudio - Trac . Архивировано из оригинального 16 октября 2008 года . Проверено 28 февраля 2017 года .
- ↑ LPC: Linux audio: It's a mess , LWN, 18 сентября 2008 г., архивировано 18 октября 2009 г. , архивировано 3 июля 2009 г.
- ^ Поттеринг (18 июля 2008), PulseAudio FUD , 0pointer.de, архивируются с оригинала на 18 октября 2009 года , получен 30 декабря +2009
- ^ Практическое руководство: исправления PulseAudio и общесистемная поддержка эквалайзера , Форумы Ubuntu, 10 мая 2008 г., заархивировано из оригинала 18 октября 2009 г. , извлечено 18 октября 2009 г.
- ^ Я сломаю ваше аудио , блог Lennart Poettering, 19 октября 2009 г. , получено 26 декабря 2009 г.
- ^ Нет звука после запуска Flash, YouTube и т. Д. (Решение pulseaudio) , Форумы Ubuntu, заархивировано из оригинала 18 октября 2009 г. , получено 18 октября 2009 г.
- ^ PulseAudio , Ubuntu Wiki, заархивировано из оригинала 18 октября 2009 г. , извлечено 18 октября 2009 г.
- ^ «Чрезмерно оптимистичная буферизация в PulseAudio вызывает недогрузки (слышимое заикание, хлопки)» . Launchpad . Проверено 9 ноября 2013 года .
- ^ См. «Загружаемые модули». Modules , Freedesktop.org, https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index9h2 , получено 28 августа 2019 г.
- ^ "PipeWire" . 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 г..
Внешние ссылки [ править ]
Викискладе есть медиафайлы по теме PulseAudio . |
- Официальный веб-сайт