LINUX.ORG.RU

Что такое PulseAudio? Как оно работает?

 , , , ,


1

1

Имеется следующая цитата:

PulseAudio - звуковой сервер в виде демона, запускаемый, что интересно, от имени обычного пользователя. Создает слой абстракции звуковых потоков для возможности различной коммутации, принимает по собственному API звуковой поток от приложений и воспроизводит его через ALSA. Так же PulseAudio создает для ALSA специальный порт, через которые может получать данные, отправляемые приложениями в сам ALSA, и такое поведение настраивается по-дефолту при установке PulseAudio. Считается надстройкой над ALSA, так как без ALSA его использование бессмысленно (будет работать только комутация, а звука не будет).


Имеются ли в ней грубые фактические ошибки, вводящие читателя в заблуждение? Сам пользуюсь PulseAudio, и конфигурю его по необходимости «чтоб работало», но понимание внутреннего устройства ограничено общими фразами из околозвуковых статей.

★★★★★
Ответ на: комментарий от kirill_rrr

Все что работает через пульс работает и через пайп. Для не умеющих нативно в пайп приложений пайп прозрачно и полноценно предоставляет апи пульсаудио. libSDL2 кстати уже умеет нативно в пайп, mpv тоже. Но те что не умеют — ничего не теряют и прекрасно работают с pipewire «как родные». Это же касается и «микшеров» (то бишь апплетов с ползунками для регулирования громкости приложений). Всё что управляло ползунками с пульсой работает и с пайпварью. И pavucontrol c пайпварью работает, громкость регулирует, потоки коммутирует и входы выходы переключает как родной.

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 2)
Ответ на: комментарий от hibou

Не всё умеет альса. Например (не слишком важно, но всё же) радельное управление громкостью приложений. Или все сетевые и блютуз- фишки. Да и на лету переключить вывод звука с одной видеокарты на другую не сможет, а ведь в современном креативном железе с портами hdmi как раз 2 штуки и вкорячивают.

kirill_rrr ★★★★★
()
Ответ на: комментарий от dmitry237

Как раз стабильная непредсказуемость и низкое качество пульсы намекают что неплохо было бы заменить. Чего то там такого намудили, что лет 10 починить до конца не могут. 2 года назад на малине-4 в свежем на тот момент дебиане из коробки был пшшшшш, лечился выпиливанием.

Плюс фашистский подход гномосеков по тотальному пропихиванию изначально взбесил многих и с тех пор ё ненавидели, хотя в теории штука полезная. Если не мешает пользоваться альсой напрямую.

kirill_rrr ★★★★★
()
Ответ на: комментарий от Jameson

но это нестандартная конфигурация не имеющая смысла, потому что dmix — это микшер, и pulseaudio тоже микшер. Смысла в том чтобы пускать микшер через микшер нет. Почему бы алса приложению не использовать pulseaudio (даже не подозревая о его наличии) и сущности не умножать?

dmix это простой, быстрый, хорошо оттестированный микшер, работающий в ядре. А пульс - юзерспейсный, тяжёлый и глючный. Если не-фанат пульса хочет прямой вывод для 99% приложений, но вот этой парочке обязательно нужно пульсу - тогда такая конфигурация имеет много смысла.

Оверхеда кстати там практически нет, точнее во всей этой херне и так дофига оверхеда.

Напротив, разница между несколькими невидимыми прерываниями при 0,1% загрузки цпу и 10-15% нагрузки на ядро просто для копирования звука между интерфейсами. Пульс может быть жирным.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

Как раз стабильная непредсказуемость и низкое качество пульсы намекают что неплохо было бы заменить.

Если бы я заметил разницу между пульсой и пайпом, я бы заменил. Точнее так: на одном ноуте пульса, на другом пайп, так как были проблемы с пульсой, почему-то она вдруг стала странно контачить с павуконтролем:

pactl set-sink-volume @DEFAULT_SINK@ "0%"

# получал не ноль, а 5%
dmitry237 ★★★★
()
Ответ на: комментарий от dmitry237

Точнее так: на одном ноуте пульса, на другом пайп, так как были проблемы с пульсой, почему-то она вдруг стала странно контачить с павуконтролем:

Вот, я об этом. Теоретически все конфигурации работают хорошо, но пульса довольно часто ведёт себя странно. Не у всех ,не на всём железе, не во всех дистрибутивах и софте. Но нафига эта рулетка, если альса ведёт себя странно в о целых хрен тысячных процентах случаев? И при этом умеет всё, что нужно 99% пользователей.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

микшер, работающий в ядре

Нет.

Если не-фанат пульса хочет прямой вывод для 99% приложений, но вот этой парочке обязательно нужно пульсу - тогда такая конфигурация имеет много смысла.

dmix это не «прямой вывод для 99% приложений», это микшер, он по определению не прямой. Если вот этой парочке нужна пульса, а всему остальному не нужна — ставят apulse.

Jameson ★★★★★
()
Ответ на: комментарий от Jameson

Я ещё ни разу не видел apulse в рабочем состоянии. И dmix совершенно определённо не имеет юзерспейсного процесса. Как и сколько нибудь заметного уровня загрузки цпу, в отличии от некоторых.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

Про то что пульс — говно и жрёт цпу если ему ресемплинг не настроить (или не отключить, вроде он с пятой версии научился принудительно не ресемплить всё подряд) я не спорю. Наличие или отсутствие юзерспейсного процесса ни о чём не говорит, кроме того что dmix не демон. И он таки не демон, он плугин к libasound.

А вообще компьютер у каждого персональный, кто как хочет так и настраивает. Для старообрядца у которого одна и только одна звуковая карта, и он не собирается usb гарнитуры подключать, звук через hdmi куда нибудь выводить, блютуз чего либо подключать (кстати можно прикрутить напрямую к alsa, но я например не осилил. И конечно прикручивание = прибивание гвоздями, никаких тебе плугэндплеев) — для такого сурового пуриста действительно никаких пульсаудио с пайпварями не надо. Но мозоли на жопе должны быть твёрдыми, глаза красными, работа с личной жизнью не должны мешать.

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 2)
Ответ на: комментарий от Xintrea

Нет там никаких перехватывающих плагинов, просто добавляется устройство вывода с названием pulseaudio и ставится дефолтным. Большинство прог выводят звуки только в дефолт и они с таким конфигом шлют в пульсу. Но никто не мешает вручную выбрать другое устройство вывода.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Нет там никаких перехватывающих плагинов, просто добавляется устройство вывода с названием pulseaudio и ставится дефолтным.

Есть там плагин. Он взаимодействует с pulseaudio через API, а его вход действительно прописывается как дефолтный. Это не просто строчка в конфиге.

Jameson ★★★★★
()
Ответ на: комментарий от Jameson

Конечно не строка, ведь alsa само по себе не знает как в pulseaudio слать - для этого плагин и нужен. Но он ничего не «перехватывает» а только шлёт в пульсу то, что ему прислали.

firkax ★★★★★
()
Ответ на: комментарий от Jameson

Лингвистический, это не термин. Xintrea вот уже ввёлся в заблуждение - посчитал, что перехват - это что-то принудительное которое нельзя обойти (обычно такой смысл и подразумевают).

firkax ★★★★★
()
Ответ на: комментарий от Jameson

До сих пор у меня получалось настроить звук с минимальными усилиями именно выпиливанием пульса. Ну и прописывание dmix и правильной дефолтной карты в альсу, что конечно не тривиально, не удобно, но по крайней мере 1 раз за весь срок поддержки дистрибутива на этом конкретном компе, в среднем раз в 2 года.

kirill_rrr ★★★★★
()