PulseAudio (Português)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Tango-preferences-desktop-locale.pngEste artigo ou esta seção precisa de tradução.Tango-preferences-desktop-locale.png

Notas: Desatualizado, faltando informações do artigo original. (Discuta em Talk: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)

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:PulseAudio (Português))

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