Como a ALSA e o PulseAudio se relacionam?

27

Ao tentar fazer meu som funcionar , fiquei me perguntando sobre os papéis da ALSA e da PulseAudio. Eu instalei e fiquei imaginando, por exemplo, qual deles precisa saber sobre minha placa de som.

Ambos parecem ser capazes de usar um ao outro, há um plugin pulseaudio para o ALSA e, no meu sistema, ele também aparece como uma placa de som no pulseaudio.

Qual dos dois faz o quê, são alternativas ou complementares?

    
por Hanno Fietz 24.05.2010 / 14:05

1 resposta

28

ALSA é o mixer de som no nível do kernel, ele gerencia sua placa de som diretamente. ALSA por si só só pode manipular um aplicativo de cada vez. Claro, existe ' dmix ', que foi escrito para resolver este problema. (É um módulo da ALSA.)

O PulseAudio é um mixer de software, no topo da área de usuário (como você executaria um aplicativo). Quando executado, ele usa o Alsa - sem o dmix - e gerencia todos os tipos de mixagem, dispositivos, dispositivos de rede, tudo por si mesmo.

Em 2014, você ainda pode executar apenas o ALSA. Mas, a menos que você compile seus aplicativos para si mesmo e habilite o suporte ao ALSA em qualquer lugar - ou use uma distribuição baseada em fontes como o Gentoo - você pode ter problemas de mixagem. Os aplicativos pré-compilados que as distribuições são normalmente construídos apenas com suporte para o Pulseaudio, não para o ALSA puro. O Ubuntu, por exemplo, prefere o PulseAudio. Ele vem com o PulseAudio por padrão, então cada aplicativo é compilado para usar somente o PulseAudio.

O PulseAudio tem seus benefícios. As pessoas dizem que é bom trabalhar com áudio em uma rede e resolve alguns problemas com fluxos de áudio multicanais que ocorreram sob puro ALSA. Também é supostamente mais fácil desenvolver aplicativos para PA. Do lado do usuário final, é fácil selecionar novos dispositivos, controlar o volume por aplicativo, etc.

No entanto, na configuração padrão, ele adiciona uma quantidade não significativa de latência ao mix. Isso é um grande problema para certos tipos de tarefas que exigem baixa latência, como alguns jogos e softwares.

OSS é uma alternativa para ambos, mas não é licenciado sob a GPL, o que torna improvável a adoção de muitas distribuições pelas distribuições.

Ilustração :
Sistemas de som típicos do PulseAudio, como o Ubuntu:
Kernel: ALSA - > Userland: PulseAudio - > app1, app2, app3
No sistema Linux típico, o PulseAudio mistura áudio de todos os seus aplicativos diferentes e os alimenta na cadeia para o ALSA.

ALSA:
Kernel: ALSA - > dmix - > Userland: app1, app2, app3
Com apenas puro ALSA, você precisa dmix para misturar vários aplicativos. Sem ele, o ALSA só pode reproduzir um fluxo de áudio de um aplicativo por vez.

OSS:
Kernel: OSS - > Userland: app1, app2, app3
Com o OSS, os aplicativos userland conversam diretamente com o OSS no kernel, que mistura os próprios fluxos.

Então, para resumir, em seu sistema típico atualmente, a ALSA fala diretamente com suas placas de som, e o Pulseaudio fala com seus aplicativos e programas e os alimenta no ALSA.

    
por 24.05.2010 / 14:13

Tags