PulseAudio (Português)

From ArchWiki
Revision as of 22:49, 3 December 2010 by MasT3R (Talk | contribs) (Tradução parcial do Configurações Alternativas. Não sei se vou terminar tudo, primeiro porque é muito conteúdo e segundo porque tem coisas aqui que tenho quase certeza que estão desatualizadas.)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Tradução parcial da versão inglesa

PulseAudio é um servidor de áudio para sistemas POSIX e Win32. Seu recurso mais básico é mixar o som de diferentes programas juntos, permitindo a reprodução de diversos sons de uma vez.

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

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. Veja a sessão Desktop Environments para mais detalhes.

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 Template:Filename 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 Template:Codeline executando:

# rmmod snd_pcm_oss

Depois, coloque o módulo na lista negra (blacklist) adicionando Template:Codeline na parte MODULES do arquivo Template:Filename.

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 Template:Filename.

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: Template:File

GStreamer

Para fazer o GStreamer usar o PulseAudio, execute Template:Filename (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 Template:Codeline para pulsesink e Template:Codeline 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 Template:Filename e precisa ser setada manualmente usando o Template:Filename ou Template:Filename:

 $ 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: Template:File

libao

Edite o arquivo de configuração do libao: Template:File

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 geral

Inicie o PulseAudio depois do X usando:

$ start-pulseaudio-x11

Isso vai iniciar o PulseAudio e os plugins do 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.

Se você usa o GNOME ou KDE, o PulseAudio será iniciado automaticamente.

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 Template:Filename:

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. Template:Filename 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 KDE3 não é possível usar o PulseAudio por enquanto.

KDE 4 e Qt4

Se você instalou o PulseAudio, tudo que você precisa fazer é ir em "Configurações do sistema -> Multimídia -> Phonon -> Preferência do dispositivo" e mudar tudo para PulseAudio.

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 como você e não usar o usuário mpd é preferível.

MPlayer

MPlayer nativamente suporta o PulseAudio usando a opção "-ao=pulse". Também é possível configurar o PulseAudio para ser a saída de áudio padrão, em Template:Filename para cada usuário, ou Template:Filename para o sistema inteiro: Template:File

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 Template:Filename: 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.

ALSA Monitor source

To be able to record from a monitor source (a.k.a. "What-U-Hear", "Stereo Mix"), use Template:Codeline to find out the name of the source in Pulseaudio (e.g. Template:Codeline). Then add lines like the following to Template:Filename or Template:Filename:

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
}

Now you can select Template:Codeline as a recording source.

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í) Template:Filename:

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 Template:Filename com a seguinte linha:

pulseaudio-native: ALL

Zeroconf (Avahi) publishing

Para o servidor remoto do PulseAudio aparecer no PulseAudio Device Chooser (Template:Filename, você também vai precisar adicionar o Template:Filename na linha DAEMONS do seu rc.conf tanto no servidor quanto nos clientes.

Switching the PulseAudio server used by local X clients

To switch between servers on the client from within X, the Template:Codeline command can be used. For example, to switch from the default server to the server at hostname foo:

$ pax11publish -e -S foo

Or to switch back to the default:

$ pax11publish -e -r

Note that for the switch to become apparent, the programs using Pulse must be restarted.

Pulseaudio through JACK

The JACK-Audio-Connection-Kit is popular for audio work, and is widely supported by Linux audio applications. It fills a similar niche as Pulseaudio, but with more of an emphasis on professional audio work. In particular, audio applications such as Ardour and Audacity (recently) work well with Jack.

Pulseaudio provides module-jack-source and module-jack-sink which allow Pulseaudio to be run as a sound server above the JACK daemon. This allows the usage of per-volume adjustments and the like for the apps which need it, play-back apps for movies and audio, while allowing low-latency and inter-app connectivity for sound-processing apps which connect to JACK. However, this will prevent Pulseaudio from directly writing to the sound card buffers, which will increase overall CPU usage.

To just try PA on top of jack you can have PA load the necessary modules on start:

pulseaudio -L module-jack-sink -L module-jack-source

To use pulseaudio with JACK, JACK must be started up before Pulseaudio, using whichever method you prefer. Pulseaudio then needs to be started loading the 2 relevant modules. Edit Template:Filename, and change the following region:

### Load audio drivers statically (it is probably better to not load
### these drivers manually, but instead use module-hal-detect --
### see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink

### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Alternatively use the static hardware detection module (for systems that
### lack udev support)
load-module module-detect
.endif

to the following:

### Load audio drivers statically (it is probably better to not load
### these drivers manually, but instead use module-hal-detect --
### see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink
load-module module-jack-source
load-module module-jack-sink

### Automatically load driver modules depending on the hardware available
#.ifexists module-udev-detect.so
#load-module module-udev-detect
#.else
### Alternatively use the static hardware detection module (for systems that
### lack udev support)
#load-module module-detect
#.endif

Basically, this prevents module-udev-detect from loading. module-udev-detect will always try to grab your sound-card (JACK has already done that, so this will cause an error). Also, the jack source and sink must be explicitly loaded.

QjackCtl with Startup/Shutdown Scripts

Using the settings listed above you can use QjackCtl to execute a script upon startup and shutdown to load/unload PulseAudio. Part of the reason you may wish to do this is that the above changes disable PulseAudio's automatic hardware detection modules. This particular setup is for using PulseAudio in an exclusive fashion with JACK, though the scripts could be modified to unload and load an alternate non-JACK setup, but killing and starting PulseAudio while programs might be using it would become problematic.

The following example could be used and modified as necessary as a startup script that daemonizes PulseAudio and loads the padevchooser program (optional, needs to be built from AUR) called Template:Filename:

#!/bin/bash
#Load PulseAudio and PulseAudio Device Chooser

pulseaudio -D
padevchooser&

as well as a shutdown script to kill PulseAudio and the Pulse Audio Device Chooser, as another example called Template:Filename also in the home directory:

#!/bin/bash
#Kill PulseAudio and PulseAudio Device Chooser

pulseaudio --kill
killall padevchooser

Both scripts need to be made executable:

chmod +x jack_startup jack_shutdown

then with QjackCtl loaded, click on the Setup button and then the Options tab and tick both "Execute Script after Startup:" And "Execute Script on Shutdown:" and put either use the ... button or type the path to the scripts (assuming the scripts are in the home directory) Template:Filename and Template:Filename making sure to save the changes you have made.

Pulseaudio via OSS

Adicione a seguinte linha no Template:Filename:

 load-module module-oss

Então inicie o PulseAudio como usual.

Pulseaudio from within a chroot (ex. 32-bit chroot in 64-bit install)

Since a chroot sets up an alternative root for the running/jailing of applications, pulseaudio must be installed within the chroot itself (Template:Codeline within the chroot environment).

Pulseaudio, if not set up to connect to any specific server (this can be done in Template:Filename, through the PULSE_SERVER environment variable, or through publishing to the local X11 properties using module-x11-publish), will attempt to connect to the local pulse server, failing which it will spawn a new pulse server. Each pulse server has a unique ID based on the machine-id value in Template:Filename. To allow for chrooted apps to access the pulse server, the following directories must be mounted within the chroot:-

/var/run
/var/lib/dbus
/tmp
~/.pulse

Template:Filename should also be mounted for efficiency and good performance. Note that mounting /home would normally also allow sharing of the Template:Filename folder.

For specific direction on accomplishing the appropriate mounts, please refer to the wiki on installing a bundled 32-bit system, especially the additional section specific to Pulseaudio.

Soluções de problemas

Sem som depois da instalação

Sem placa de som

Se o PulseAudio inicie, rode Template:Codeline. 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 Template:Filename (inserindo Template:Codeline)

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 Template:Filename 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 Template:Filename. 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 Template:Filename:

@pulse-rt - rtprio 9
@pulse-rt - nice -11

Depois disso, você precisa adicionar seu usuário no grupo Template:Codeline:

# gpasswd -a <user> pulse-rt

Veja também

Links externos