PulseAudio (Português)
PulseAudio (antigo Polypaudio) é um servidor de som em rede multi-plataforma , comumente usado em sistemas baseados no Linux e FreeBSD. Ele pode ser usado como um substituo melhorado do Enlightened Sound Daemon (ESD).
PulseAudio roda em sistemas Microsoft Windows e POSIX-compliant, como o Linux e FreeBSD. PulseAudio é um software livre lançado sobre os termos da GNU Lesser General Public License.
Fonte: Wikipédia
Instalação
Para instalar o PulseAudio:
# pacman -S pulseaudio
Opcionalmente você pode instalar alguns frontends escritos em GTK:
# pacman -S paprefs pavucontrol
Executando
O PulseAudio pode ser iniciado usando:
$ pulseaudio --start
Ou se você usa o X11:
$ start-pulseaudio-x11
Isso vai iniciar o PulseAudio com os plugins para o X11.
No KDE você pode usar o comando:
$ start-pulseaudio-kde
Isso permite que você veja cada um dos dispositivos de áudio no Configurações do sistema->Multimídia->Phonon.
Você pode parar o PulseAudio usando:
$ pulseaudio --kill
Note que em alguns Desktops Environments como o KDE e o GNOME, o PulseAudio será iniciado durante o login.
Configuração dos Backends
ALSA
Para aplicativos que não suportam o PulseAudio mas suportam o ALSA é recomendado instalar o plugin do PulseAudio para o ALSA. O jeito mais simples de fazê-lo é instalando o pacote pulseaudio-alsa.
# pacman -S pulseaudio-alsa
Esse pacote inclui o /etc/asound.conf
necessário para configurar o ALSA para usar o PulseAudio.
Se você usa o Arch x86_64 e quer ter som em programas 32-bits (como o Wine), lembre-se de instalar o lib32-libpulse e o lib32-alsa-plugins também.
Para evitar que aplicativos usem a emulação do OSS via ALSA e assim transpassando o PulseAudio (prevenindo outros aplicativos de tocar som), remova o módulo snd_pcm_oss
executando:
# rmmod snd_pcm_oss
Depois, coloque o módulo na lista negra (blacklist) adicionando !snd_pcm_oss
na parte MODULES do arquivo /etc/rc.conf
.
OSS
Existem várias maneiras de fazer programas que só funcionam com OSS rodarem no PulseAudio:
osspd
Esse é o jeito mais simples.
Instale o ossp e inicie-o digitando:
# /etc/rc.d/osspd start
Depois, adicione-o na linha DAEMONS do arquivo /etc/rc.conf
.
padsp wrapper
Se você tem um programa que usa o OSS você pode fazê-lo funcionar com o PulseAudio iniciando-o com o padsp:
$ padsp OSSprogram
Alguns exemplos:
$ padsp aumix $ padsp sox foo.wav -t ossdsp /dev/dsp
Se você preferir você pode renomear seu programa OSS e substituí-lo com um script como esse:
/usr/bin/OSSProgram
#!/bin/sh if test -x /usr/bin/padsp; then exec /usr/bin/padsp /usr/bin/OSSprogram-bin "$@" else exec /usr/bin/OSSprogram "$@" fi
GStreamer
Para fazer o GStreamer usar o PulseAudio, execute gstreamer-properties
(parte do pacote gnome-media) e selecione Servidor de som PulseAudio tanto na Saída como Entrada padrão. Alternativamente, isso pode ser feito setando as variáveis /system/gstreamer/0.10/default/audiosink
para pulsesink e /system/gstreamer/0.10/default/audiosrc
para pulsesrc no gconf2:
$ gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink $ gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosrc pulsesrc
Algumas aplicações (como o Rhythmbox) ignoram a propriedade audiosink, usando a propriedade musicaudiosink, que não pode ser configurada usando o gstreamer-properties
e precisa ser setada manualmente usando o gconf-editor
ou gconftool-2
:
$ gconftool-2 -t string --set /system/gstreamer/0.10/default/musicaudiosink pulsesink
OpenAL
OpenAL deve usar o PulseAudio por padrão, mas você pode configurar explicitamente para usá-lo em:
/etc/openal/alsoft.conf
drivers=pulse,alsa
libao
Edite a seguinte linha no arquivo de configuração do libao:
/etc/libao.conf
default_driver=pulse
PortAudio
A versão atual do PortAudio no repositório community não suporta o PulseAudio. Isso pode ser arrumado compilando o PortAudio do ABS e aplicando esse patch ao código.
ESD
PulseAudio substitui o enlightened sound daemon (ESD). Enquanto o PulseAudio estiver rodando, clientes ESD devem ser capazes de usá-lo sem configurações adicionais.
Desktop Environments
X11 bell
Para fazer o PulseAudio tocar um som quando um evento do X11 acontecer (ex.: fazer seu terminal fazer 'Ping!' ao invés de 'Beep!'), adicione o seguinte no arquivo /etc/pulse/default.pa
:
load-sample-lazy x11-bell /usr/share/sounds/freedesktop/stereo/dialog-error.ogg load-module module-x11-bell sample=x11-bell
Você também pode usar outro som. dialog-error.ogg
faz parte do pacote sound-theme-freedesktop.
GNOME
Para obter integração completa do GNOME com o PulseAudio você deve instalar os seguintes pacotes:
- gnome-media-pulse
- gnome-settings-daemon-pulse
- libcanberra-pulse
Eles fazem parte do grupo pulseaudio-gnome.
KDE 3
PulseAudio não é um substituto para o aRts. Se você usa o KDE 3 não é possível usar o PulseAudio por enquanto.
KDE 4 e Qt4
Se tudo ocorreu bem não é necessário fazer nenhuma configuração adicional no KDE 4.
Aplicativos
Audacious
Audacious tem suporte nativo ao PulseAudio. Para usá-lo você deve setar nas preferências do Audacious (Ctrl + P) -> Áudio -> Plugin de saída atual para 'PulseAudio Output Plugin'.
mpd
Você vai precisar configurar o mpd para usar o PulseAudio.
Se você roda o daemon no modo system-wide, você vai precisar adicionar o usuário mpd no grupo pulse-access para conseguir fazer o mpd se conectar ao daemon.
Num desktop, executar o mpd com o seu usuário e não com o mpd é preferível.
MPlayer
O MPlayer tem suporte nativo ao PulseAudio usando a opção "-ao=pulse". Também é possível configurar o PulseAudio para ser a saída de áudio padrão, em ~/.mplayer/config
para cada usuário, ou /etc/mplayer/mplayer.conf
para o sistema inteiro:
/etc/mplayer/mplayer.conf
ao=pulse
Configurações alternativas
Sistemas surround
Várias pessoas tem uma placa de som surround, mas só usam dois canais, então o PulseAudio não pode usar como padrão uma configuração surround. Para habilitar todos os canais, edite o arquivo /etc/pulse/daemon.conf
: descomente a linha 'default-sample-channels' (remova o ponto-e-vírgula do início da linha) e sete o valor para 6 se você tiver um sistema 5.1 ou 8 se você tiver um sistema 7.1 e assim por diante.
# Padrão default-sample-channels=2 # Para 5.1 default-sample-channels=6 # Para 7.1 default-sample-channels=8
Depois de fazer a mudança, você deve reiniciar o PulseAudio.
Gravar de fonte monitora
Para conseguir gravar a partir de uma fonte monitora (a.k.a. "O-que-você-ouve", "Stereo Mix"), use pactl list
para achar o nome da fonte no PulseAudio (ex. alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
). Então adicione algo como o seguinte no /etc/asound.conf
or ~/.asoundrc
:
pcm.pulse_monitor { type pulse device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor } ctl.pulse_monitor { type pulse device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor }
Agora você pode selecionar o pulse_monitor
como uma fonte de gravação.
PulseAudio via rede
Um dos recursos mais interessantes do PulseAudio é a possibilidade de fazer streams de áudio dos clientes via TCP até o servidor rodando o daemon do PulseAudio, permitindo que sons sejam transmitidos via LAN.
Para conseguir isso, é necessário ativar o module-native-protocol-tcp, e copiar o pulse-cookie nos clientes.
Suporte TCP (som via rede)
Para ativar o módulo TCP, adicione isso (ou descomente, se já estiver aí) /etc/pulse/default.pa
:
load-module module-native-protocol-tcp
Para permitir conexões remotas ao módulo TCP, você também tem que desbloquear o serviço em /etc/hosts.allow
com a seguinte linha:
pulseaudio-native: ALL
Publicação Zeroconf (Avahi)
Para o servidor remoto do PulseAudio aparecer no PulseAudio Device Chooser (padevchooser
), você também vai precisar adicionar o avahi-daemon
na linha DAEMONS do seu rc.conf tanto no servidor quanto nos clientes.
Trocando o servidor PulseAudio usado por clientes X locais
Para trocar entre servidores no cliente a partir do X, o comando pax11publish
pode ser usado. Por exemplo, para trocar do servidor padrão para um servidor no hostname foo:
$ pax11publish -e -S foo
Ou para voltar ao servidor padrão:
$ pax11publish -e -r
Note que para a troca se efetive, os programas que usam o PulseAudio devem ser reiniciados.
Pulseaudio via OSS
Adicione a seguinte linha no /etc/pulse/default.pa
:
load-module module-oss
Então inicie o PulseAudio como usual.
Soluções de problemas
Sem som depois da instalação
Sem placa de som
Se o PulseAudio inicie, rode pacmd list
. Se nenhuma placa de som for reportada, confira se seus dispositivos ALSA não estão em uso:
$ fuser -v /dev/snd/* $ fuser -v /dev/dsp
Tenha certeza que qualquer aplicativo usando pcm ou dsp está desligado antes de reiniciar o PulseAudio.
Dispositivo de som mudo
Se você não teve nenhum áudio enquanto usava o ALSA como seu dispositivo padrão, talvez você tenha que remover o mudo da sua placa de som. Para isso, você vai iniciar o alsamixer e checar se cada coluna tem uma verde com 00 abaixo dele (isso pode ser feito pressionando 'm')
$ alsamixer -c 0
Algumas vezes o módulo snd_pcsp conflita com o snd_hda_intel (para aqueles que usam placas da Intel) e nenhum som é conseguido. Para arrumar isso, você pode colocar na lista negra (blacklist) o módulo snd_pcsp na linha MODULES do arquivo /etc/rc.conf
(inserindo !snd_pcsp
)
Falha ao iniciar o daemon
Tente recomeçar o PulseAudio. Para isso:
$ pulseaudio --kill $ killall pulseaudio $ killall -9 pulseaudio $ rm -rf ~/.pulse* $ rm -rf /tmp/pulse*
Depois disso, inicie o PulseAudio de novo.
padevchooser
Se você não consegue iniciar o PulseAudio Device Chooser, primeiro (re)inicie o daemon do Avahi:
$ /etc/rc.d/avahi-daemon restart
Problemas e uso intenso da CPU a partir da versão 0.9.14
O servidor de áudio PulseAudio foi reescrito para usar timer-based scheduling ao invés do tradicional interrupt-driven scheduling. Timer-based scheduling pode apresentar problemas em alguns drivers do ALSA. Para desligar o timer-based scheduling, substitua a linha:
load-module module-udev-detect
no arquivo /etc/pulse/default.pa
por:
load-module module-udev-detect tsched=0
Som intermitente
Som intermitente no PulseAudio pode ser resultado de configurações erradas no sample rate do arquivo /etc/pulse/ddaemon.conf
. Tente substituir a linha
; default-sample-rate = 44100
para
default-sample-rate = 48000
e reinicie o PulseAudio usando
pulseaudio --kill && pulseaudio --start
Ajuste de volume não funciona corretamente
Você talvez queira checar:
/usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common
Realtime scheduling
Se o rtkit não funcionar, você pode setar manualmente seu sistema para rodar o PulseAudio com realtime scheduling, o que ajuda na performance. Para fazer isso, adicione as seguintes linhas no arquivo /etc/security/limits.conf
:
@pulse-rt - rtprio 9 @pulse-rt - nice -11
Depois disso, você precisa adicionar seu usuário no grupo pulse-rt
:
# gpasswd -a <user> pulse-rt
Veja também
Links externos
- http://www.pulseaudio.org/wiki/PerfectSetup - Um bom guia para configurar o PulseAudio de forma perfeita (em inglês)
- http://www.alsa-project.org/main/index.php/Asoundrc - Alsa wiki sobre .asoundrc (em inglês)
- http://www.pulseaudio.org/ - Site oficial do PulseAudio (em inglês)
- http://www.pulseaudio.org/wiki/FAQ - PulseAudio FAQ (em inglês)