PulseAudio (Русский)

From ArchWiki
Jump to: navigation, search

Tango-preferences-desktop-locale.pngЭта страница нуждается в сопроводителеTango-preferences-desktop-locale.png

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki
Состояние перевода: На этой странице представлен перевод статьи PulseAudio. Дата последней синхронизации: 10 октября 2015‎. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

PulseAudio - это звуковой сервер, который обычно используется для окружений рабочего стола, таких как GNOME или KDE. Он служит в качестве прокси для звуковых приложений, используя существующие звуковые компоненты, такие как ядро ALSA или OSS. ALSA включена в Arch Linux по умолчанию, использование PulseAudio вместе с ALSA является наиболее распространённым сценарием.

Установка

  • Требуется пакет: pulseaudio
  • Дополнительно: графические интерефейсы GTK: paprefs и pavucontrol
  • Дополнительно: регулировка звука с помощью мультимедиа клавиш на клавиатуре: pulseaudio-ctlAUR
  • Дополнительно: консольные (CLI) микшеры: ponymix и pamixer-gitAUR
  • Дополнительно: консольный (с поддержкой курсора) микшер: pulsemixerAUR
  • Дополнительно: web-интерфейс для регулировка звука: PaWebControl
  • Дополнительно: иконка в системном трее: pasystray-gitAUR
  • Дополнительно: апплет KDE4 плазма: kdemultimedia-kmix и kdeplasma-applets-veromixAUR[ссылка недействительна: сохранено в aur-mirror] (Если KMix/Veromix не удается подключиться к PulseAudio при загрузке, вы можете отредактировать /etc/pulse/client.conf включив autospawn = yes вместо autospawn = no.)
  • Дополнительно: KF5 плазма аплет: kmix и plasma-pa
  • Если вы хотите использовать Гарнитуру Bluetooth или другое Bluetooth Аудио Устройство вместе с PulseAudio смотрите статью Bluetooth headset.
Примечание: Some confusion can be made between ALSA and PulseAudio. ALSA both includes a Linux kernel component with sound card drivers, and a userspace component, libalsa. [1] PulseAudio only builds on the kernel component, but offers compability with libalsa through pulseaudio-alsa. [2]

Модули PulseAudio

Некоторые модули PulseAudio были убраны из основного пакета и должны быть установлены отдельно, если это необходимо.

Настройка

Файлы настроек

По умолчанию PulseAudio настроен на управление и автоматическое обнаружение всех звуковых карт. Он берёт под свой контроль все обнаруженные устройства ALSA, и перенаправляет все аудиопотоки на себя, делая демон PulseAudio центральной точкой настроек. Демон, в основном, должен работать "из коробки", требуя только нескольких незначительных изменений настроек.

PulseAudio будет сначала смотреть файлы настроек в домашнем каталоге ~/.config/pulse, а затем в общесистемном /etc/pulse.

PulseAudio работает как демон сервера, который может работать или общесистемно или для каждого пользователя, с помощью архитектуры клиент/сервер. Без своих модулей демон сам по себе ничего не делает, кроме обеспечения API и размещения динамически загружаемых модулей. Вся маршрутизация аудио и обработка задач обрабатывается различными модулями. Вы можете найти подробный список всех доступных модулей в Загружаемые Модули Pulseaudio (Англ.). Чтобы включить их, Вы можете добавить строку load-module <имя модуля из списка> в ~/.config/pulse/default.pa.

Совет:
  • Настоятельно советуем не редактировать общесистемные файлы настроек, вместо них редактируйте пользовательские. Создайте каталог ~/.config/pulse, затем скопируйте (cp /etc/pulse/ ~/.config/pulse) файлы настроек системы в него, и редактируйте согласно Вашим требованиям.
  • Убедитесь, что Вы держите пользовательские настройки в синхронизации с изменениями в пакетных файлах /etc/pulse/. Иначе, PulseAudio может отказаться запускаться из-за ошибки в настройках.
  • Нет необходимости добавлять Вашего пользователя к группе audio, поскольку он использует udev и logind для динамичного предоставления доступа к "в настоящее время активному" пользователю

daemon.conf

Определяет основные настройки, такие как: частоты дискретизации по умолчанию, используемые модулями, методы повторной выборки, планирование в реальном времени, и другие различные настройки, связанные с серверным процессом. Они не могут быть изменены во время выполнения, без перезапуска демона PulseAudio. Значения по умолчанию разумны для большинства пользователей.

Известные параметры настроек
опция описание
system-instance (системный экземпляр) Запустит демон как общесистемный экзеппляр. Крайне нежелательно, поскольку это может привести к проблемам безопасности. Полезно в (headless) системах, не имеющих никаких настоящих локальных пользователей. Значение по умолчанию no.
resample-method (метод частоты дискретизации) Какой метод частоты дискретизации (resampler) использовать, когда звук с несовместимыми частотами дискретизации должен быть передан между модулями (например, воспроизведение звука на 96 кГц на аппаратном обеспечении, поддерживающим только 48 кГц). Доступные resampler'ы могут быть перечислены с помощью $ pulseaudio --dump-resample-methods. Выберите и используйте лучший компромисс между загрузкой процессора и качеством звука.
Совет: В некоторых случаях PulseAudio будет генерировать высокую нагрузку на процессор. Это может произойти, когда несколько потоков передискретизируются (индивидуально). Если это используется в выбранном общем рабочем процессе, его следует продумать, чтобы создать дополнительное устройство вывода (sink) с соответствующей частотой дискретизации, которое может передавать в основное устройство вывода (main sink), передискретизируя только один раз.
flat-volumes flat-volumes масштабирует громкость устройства с громкостью "самого громкого" приложения. Например, повышение громкости вызова VoIP повысит аппаратную громкость и скорректирует звук аудиоплеера, таким образом, что понижать громкость аудиоплеера вручную нет необходимости. Значение по умолчанию yes.
Важно: Поведение значения по умолчанию, иногда, может сбивать с толку, и некоторые приложения не зная об этой функции, могут регулировать свою громкость к 100% при запуске, потенциально создавая неожиданно громкий звук. Для восстановления классического поведения (ALSA), установите это значение в no.
default-fragments (фрагменты по умолчанию) Аудиосэмплы разделяются на многократные фрагменты default-fragment-size-msec. Чем больше буфер, тем менее вероятен пропуск звука, когда система будет перегружена. С другой стороны это увеличит общую величину задержки. Увеличьте это значение, если у Вас есть проблемы.

default.pa

Этот файл является сценарием запуска и используется для настройки модулей. Он анализируется и читается после завершения инициализации демона. Дополнительные команды могут быть отправлены во время выполнения с помощью $ pactl или $ pacmd. Сценарий запуска также может быть указан в командной строке, путем запуска PulseAudio в терминале, с помощью $ pulseaudio -nC. Это заставит демона загрузить модуль CLI и принимать настройки непосредственно из командной строки, выдавать получающуюся информацию или сообщения об ошибках на том же терминале. Это может быть полезно при отладке демона или тестирования различных модулей, перед постоянной установкой их на диск. Обратитесь к странице руководства man pulse-cli-syntax, для пояснений элементов синтаксиса

Совет:
  • Для перечисления доступных устройств вывода, выполните $ pacmd list-sinks|egrep -i 'index:|name:'. Задействованное в настоящее время устройство вывода по умолчанию, отмечено звёздочкой (*).
  • Редактируйте ~/.config/pulse/default.pa для вставки/изменения команды установленного_по_умолчанию_устройства_вывода, использующей имя устройства вывода, поскольку повторная нумерация не может быть гарантирована.

client.conf

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

Команда настроек

Основная команда для настройки сервера во время выполнения является $ pacmd. Для списка опций выполните $ pacmd --help, или для входа в интерактивный режим оболочки выполните $ pacmd и Ctrl+d для выхода. Все модификации будут сразу применены.

После того, как новые настройки были проверены и удовлетворили Ваши потребности, соответственно отредактируйте default.pa чтобы изменения стали постоянными. Для некоторых основных настроек, смотрите PulseAudio/Examples.

Совет: Оставьте строку load-module module-default-device-restore в нетронутом файле default.pa. Это позволит вам перезапустить сервер в состояние по умолчанию, таким образом избегая любых неправильных установок.

Важно понять, что "sources" (источники) (процессы, устройства захвата) и доступные "sinks" (устройства вывода/приемники) (звуковые карты, серверы, другие процессы) можно выбрать через PulseAudio, это зависит от текущих аппаратных средств выбранного "Profile" (профиля). Эти "Профили" являются теми ALSA "pcms" перечисленные командой aplay -L, и более конкретно командой pacmd list-cards, которая будет включать строку "index:" (индекс), список начинающих "profiles:" (профилей) и строку "active profile: <...>" (активный профиль) на выводе, среди других вещей.

"active profile" (Активный профиль) может быть установлен командой pacmd set-card-profile INDEX PROFILE без запятой ( , ) разделяющей INDEX и PROFILE, где INDEX является просто числом на строке "index:" и имя PROFILE является всем показанным с начала любой строки под "профилем": до двоеточия и начала места, как показано командой pacmd list-cards. Например, pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo.

"Профиль" проще выбрать с графическим инструментом как pavucontrol, под вкладкой "Configuration" (Настройка) или Параметрами настройки системы KDE, "Мультимедийные/Аудио и Параметры видео", под вкладкой "Audio Hardware Setup". Каждая аудио "Карта", которая являются теми устройствами, перечисленными командой aplay -l, или снова командой pacmd list-cards, будет иметь свой собственный выбор "Профиля". Когда "Профиль" был выбран, то доступные "источники" и "приемники" можно увидеть при помощи команд pacmd list-sources и pacmd list-sinks. Обратите внимание на то, что "индекс" доступных источников и приемников изменятся каждый раз, когда изменяется профиль карты.

Выбранный "Профиль" может быть проблемой для некоторых приложений, особенно Adobe Flash Player, обычно /usr/lib/mozilla/plugins/libflashplayer.so и /usr/lib/PepperFlash/libpepflashplayer.so. Часто, эти флэш-плееры будут работать только тогда, когда выбран один из профилей Стерео, иначе видео будет проигрываться без звука или просто "откажется" воспроизводиться. Когда все остальное перестало работать, Вы можете попробовать выбрать различные профили.

Конечно, при настройке некоторых вариаций Surround Sound (Объёмного Звука) в PulseAudio, должен быть выбран соответствующий профиль Surround. Прежде чем объёмный звук будет работать, сделайте такие вещи, как переназначение каналов динамиков (speaker channels).

Выполнение

Начиная с версии 7.0 PulseAudio на Arch использует активацию сокета. По умолчанию, pulseaudio.socket включен для экземпляра systemd/Пользователь.

Примечание:
  • Для отключения pulseaudio.socket удостоверьтесь, что $XDG_CONFIG_HOME/systemd/user существует, и выполните systemctl --user mask pulseaudio.socket
  • Многие окружения рабочих столов автоматически запускают программы на основе файлов desktop из каталога /etc/xdg/autostart/. В этом случае PulseAudio будет запущен автоматически независимо от состояния активации сокета

Для получения дополнительной информации посмотрите PulseAudio: Выполнение.

Запуск вручную

PulseAudio может быть запущен вручную:

$ pulseaudio --start

И остановлен:

$ pulseaudio --kill

Настройка бакэндов

ALSA

Установите pulseaudio-alsa из официальных репозиториев. Этот пакет содержит /etc/asound.conf необходимый для настройки ALSA с использованием PulseAudio.

Если вы используете систему x86_64, установите lib32-libpulse и lib32-alsa-plugins если хотите получить звук в 32-битных multilib программах, таких как: Wine, Skype и Steam.

Чтобы не допустить приложениям ALSA использовать эмуляцию OSS в обход PulseAudio (тем самым не давая другим приложениям воспроизводить звук), убедитесь, что модуль snd_pcm_oss не загружается при загрузке. Если в настоящее время загружен (lsmod | grep oss), отключите его, выполнив:

# rmmod snd_pcm_oss

ALSA/dmix без захвата аппаратного устройства

Примечание: Этот раздел описывает альтернативную настройку, которая, как правило, не рекомендуется .

Вы возможно захотите использовать ALSA непосредственно в большинстве Ваших приложений, при этом елси есть необходимость использовать приложения требующие PulseAudio. Следующие шаги позволяют Вам заставлять PulseAudio использовать dmix вместо того, чтобы "захватывать" устройство ALSA.

  • Удалите пакет pulseaudio-alsa, обеспечивающий уровень совместимости между приложениями ALSA и PulseAudio. После этого Ваши приложения ALSA будут использовать ALSA напрямую, без "зацепки" Pulse.
  • Отредактируйте /etc/pulse/default.pa.
Найдите и расскоментируйте строки, загружающие драйверы бэкэнда. Добавьте параметры device (устройство) следующим образом. Затем найдите и закомментируйте строки, загружающие модули автоматического обнаружения.
load-module module-alsa-sink device=dmix
load-module module-alsa-source device=dsnoop
# load-module module-udev-detect
# load-module module-detect
  • Дополнительно: если Вы используете kdemultimedia-kmix, Вы можете управлять громкостью ALSA, вместо громкости PulseAudio:
$ echo export KMIX_PULSEAUDIO_DISABLE=1 > ~/.kde4/env/kmix_disable_pulse.sh
$ chmod +x ~/.kde4/env/kmix_disable_pulse.sh
  • Теперь, перезагрузите свой компьютер и попытайтесь запустить одновременно приложения ALSA и PulseAudio. Они оба должны воспроизводить звук одновременно.
При необходимости используйте pavucontrol для управления звука PulseAudio.

OSS

Есть несколько способов заставить работать OSS-программы через PulseAudio:

ossp

Установите пакет ossp и запустите службу osspd.service.

Оболочка padsp

Программы использующие OSS могут работать с PulseAudio путем его загрузки с padsp (включенный с PulseAudio):

$ padsp OSSпрограмма

Несколько примеров:

$ padsp aumix
$ padsp sox foo.wav -t ossdsp /dev/dsp

Вы можете также добавить пользовательский сценарий оболочки:

/usr/local/bin/OSSProgram
#!/bin/sh
exec padsp /usr/bin/OSSprogram "$@"

Убедитесь, что /usr/local/bin, идёт до /usr/bin в Вашем PATH.

GStreamer

Установите gst-plugins-good, или gstreamer0.10-good-plugins, если Ваша программа имеет наследие реализации GStreamer.

OpenAL

Приложение OpenAL должно использовать PulseAudio по умолчанию, но может быть настроено так, чтобы использовать именно его:
/etc/openal/alsoft.conf
drivers=pulse, alsa

libao

Отредактируйте файл настроек libao:

/etc/libao.conf
default_driver=pulse

Обязательно удалите опцию alsa драйвера dev=default или настройте его для определения определенного имени устройства вывода Pulse (sink) или его числа.

Примечание: Вы можете держать libao стандартно на вывод драйвера alsa и его устройств по умолчанию, если Вы устанавливаете pulseaudio-alsa, так как устройством вывода по умолчанию ALSA является PulseAudio.

Эквалайзер

Tango-dialog-warning.pngИнформация в этой статье или разделе устарелаTango-dialog-warning.png

Причина: pulseaudio-7.0-2, не поддерживаетmodule-equalizer-sink, смотрите Talk:PulseAudio#Equalizer module is unsupported. (Обсудить)

PulseAudio имеет интегрированную систему эквалайзера с 10 полосами. Для использования эквалайзера, сделайте следующее:

Установите pulseaudio-equalizer:

Загрузка модуля эквалайзера и протокола dbus

$ pactl load-module module-equalizer-sink
$ pactl load-module module-dbus-protocol

Графический интерфейс

выполните:

$ qpaeq

Примечание: Если qpaeq не произвёл никакого эффекта, установите pavucontrol и измените "ALSA Playback on" на "FFT based equalizer on ...", во время работы медиапроигрывателя.

Загрузка эквалайзера и модуля DBus при каждой загрузке

Отредактируйте файл /etc/pulse/default.pa или ~/.config/pulse/default.pa вашим редактором, и добавьте следующие строки:

### Load the integrated PulseAudio equalizer and D-Bus module
load-module module-equalizer-sink
load-module module-dbus-protocol
Примечание: Устройство вывода эквалайзера должно быть загружено после того, как основное устройство вывода уже доступно.

Приложения

QEMU

Tango-Merge-arrows-3.pngЭта статья или раздел является кандидатом на объединение с QEMU.Tango-Merge-arrows-3.png

Причина: QEMU является самым сложным из "приложений", описанных в этом разделе, объединение с основной статьей обеспечило бы лучший контекст. (обсуждение: Talk:PulseAudio (Русский)#)

Аудио драйвер, используемый QEMU, установлен с переменной окружения QEMU_AUDIO_DRV:

$ export QEMU_AUDIO_DRV=pa

Выполните следующую команду для связывания параметров настроек QEMU с PulseAudio:

$ qemu-system-x86_64 -audio-help | awk '/Name: pa/' RS=

Перечисленные опции могут быть экспортированы как переменные окружения, например:

$ export QEMU_PA_SINK=alsa_output.pci-0000_04_01.0.analog-stereo.monitor
$ export QEMU_PA_SOURCE=input

Tango-mail-mark-junk.pngЭта статья или раздел нуждается в улучшении грамматики, форматирования или стиля.Tango-mail-mark-junk.png

Причина: Следующее не является специфичным для PulseAudio. (обсуждение: Talk:PulseAudio (Русский)#)

Чтобы получить список поддерживаемых драйверов эмуляции аудио:

$ qemu-system-x86_64 -soundhw help

Для гостевого использования, например, драйвера ac97, команда с QEMU -soundhw ac97.

Примечание: Эмулирование драйвера видеокарты для гостевой машины может также вызвать проблему с качеством звука. Тестируйте один за другим, чтобы заставить его работать. Вы можете перечислить возможные варианты с поомщью qemu-system-x86_64 -h | grep vga.

AlsaMixer.app

Сделайте alsamixer.appAUR dockapp для использования pulseaudio windowmaker, например:

$ AlsaMixer.app --device pulse

Вот два примера, где первый - для ALSA, и другой - для pulseaudio. Вы можете запустить несколько его экземпляров. Используйте опцию выбора -w, кнопок управления для привязки к колесику мышки.

# AlsaMixer.app -3 Mic -1 Master -2 PCM --card 0 -w 1
# AlsaMixer.app --device pulse -1 Capture -2 Master -w 2
Примечание: Он может использовать только те устройства вывода, которые устанавлены по умолчанию..

XMMS2

Сделайте переключение на вывод pulseaudio

$ nyxmms2 server config output.plugin pulse

и на alsa

$ nyxmms2 server config output.plugin alsa

Для того, чтобы xmms2 использовал другое устройство вывода, например:

 $ nyxmms2 server config pulse.sink alsa_output.pci-0000_04_01.0.analog-stereo.monitor

Смотрите также официальное руководство [3].

Рабочая область KDE и Qt4

PulseAudio будет автоматически использоваться приложениями KDE/Qt4. Это поддерживается по умолчанию в микшере звука KDE. Для получения дополнительной информации посмотрите страницу KDE, в wiki PulseAudio. Один полезный совет с той страници: добавить load-module module-device-manager в /etc/pulse/default.pa.

Если бэкэнд phonon-gstreamer используется для Phonon, GStreamer должен также быть настроен, как описано в #GStreamer.

Audacious

Audacious изначально поддерживает PulseAudio. Для его использования установите Audacious Настройки -> Audio -> Current output plugin to 'PulseAudio Output Plugin'.

Java/OpenJDK 6

Создайте "обертку" для исполняемой программы Java, использующей padsp, как замечено на странице Java sound with PulseAudio.

Music Player Daemon (MPD)

Настройте MPD на использование PulseAudio. Смотрите также раздел Music Player Daemon/Tips and tricks#PulseAudio.

MPlayer

MPlayer изначально поддерживает вывод PulseAudio с опцией -ao pulse. Это также может быть настроено для установки по умолчанию на вывод PulseAudio, в ~/.mplayer/config для конкретного пользователя, или для всей системы /etc/mplayer/mplayer.conf:

/etc/mplayer/mplayer.conf
ao=pulse

guvcview

guvcview при использовании входа PulseAudio от Веб-камеры, аудиовход может быть в "приостановленном" режиме, в результате чего звук не будет записываться. Вы можете проверить это путем выполнения:

$ pactl list sources

Если источник аудиосигналов "suspended" (приостановлен), измените следующую строку в /etc/pulse/default.pa, изменение:

load-module module-suspend-on-idle

на

#load-module module-suspend-on-idle

И затем перезапустите PulseAudio или Ваш компьютер. Теперь аудиовход будет "бездействовать", вметсо того, чтобы находиться в "приостановленном" режиме. Теперь guvcview будет писать звук правильно.

Советы и хитрости

Регулировка звука клавиатурой

Обозначьте следующие команды на своих кнопках регулировки громкости: XF86AudioRaiseVolume, XF86AudioLowerVolume, XF86AudioMute

Повысить громкость:

sh -c "pactl set-sink-mute 0 false ; pactl set-sink-volume 0 +5%"

Понизить громкость:

sh -c "pactl set-sink-mute 0 false ; pactl -- set-sink-volume 0 -5%"

Отключить/Включить звук:

pactl set-sink-mute 0 toggle

Решение проблем

Смотрите PulseAudio/Troubleshooting.

Смотрите также