PulseAudio

редактировать
Звуковой сервер для Unix-подобных операционных систем
PulseAudio
Логотип PulseAudio
Разработчик (и) Lennart Poettering. Пьер Оссман. Шахмс Э. Кинг. Тану Каскинен. Колин Гатри. Арун Рагхаван. Дэвид Хеннингссон
Первый выпуск17 июля 2004 г.; 16 лет назад (17.07.2004)
Стабильный выпуск 13.0 / 13 сентября 2019 г.; 13 месяцев назад (13.09.2019)
Репозиторий gitlab.freedesktop.org / pulseaudio / pulseaudio
Написано наC
Операционная система FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, macOS и Microsoft Windows (не поддерживается)
Платформа ARM, PowerPC, x86 / IA- 32, x86-64 и MIPS
Тип Звуковой сервер
Лицензия Стандартная общественная лицензия ограниченного применения GNU 2.1
Веб-сайтpulseaudio.org

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

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

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

Содержание

  • 1 Архитектура программного обеспечения
    • 1.1 libcanberra
    • 1.2 libSydney
  • 2 Характеристики
  • 3 Принятие
    • 3.1 Проблемы на этапе внедрения
  • 4 Сопутствующее программное обеспечение
    • 4.1 Другие звуковые серверы
    • 4.2 Общие аудиоинфраструктуры
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки

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

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

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

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

Одна из целей 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»:

libSydney

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

Особенности

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

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

Adoption

PulseAudio впервые появилась для обычных пользователи в Fedora Linux, начиная с версии 8, затем были приняты основными L дистрибутивы inux, такие как Ubuntu, Debian, Mageia, Mandriva Linux, Linux Mint, openSUSE и OpenWrt. Существует поддержка PulseAudio в проекте GNOME, а также в KDE, поскольку он интегрирован в Plasma Workspaces, добавляя поддержку Phonon (мультимедийный фреймворк KDE) и (встроенное приложение микшера), а также графический интерфейс «Настройка динамика» для помощи в настройке многоканальных динамиков. PulseAudio также доступен в дистрибутиве Illumos OpenIndiana и включен по умолчанию в его среде MATE.

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

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

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

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

Сопутствующее программное обеспечение

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

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

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

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

Общие аудиоинфраструктуры

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

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

См. Также

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

Ссылки

Внешние ссылки

На Викискладе есть медиафайлы, связанные с PulseAudio.

Последняя правка сделана 2021-06-02 10:39:28
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте