63 votes

Quel est le lien entre ALSA et PulseAudio ?

En essayant de faire fonctionner mon son Je m'interrogeais sur le rôle d'ALSA et de PulseAudio. J'ai installé les deux et je me demandais, par exemple, lequel des deux a besoin de connaître ma carte son.

Les deux semblent pouvoir s'utiliser l'un l'autre, il y a un plugin pulseaudio pour ALSA, et sur mon système, alsa apparaît comme une carte son dans pulseaudio.

Laquelle des deux fait quoi, sont-elles alternatives ou complémentaires ?

70voto

Apache Points 15675

ALSA est le mélangeur de son au niveau du noyau, il gère directement votre carte son. ALSA ne peut gérer qu'une seule application à la fois. Bien sûr, il y a ' dmix qui a été écrit pour résoudre ce problème. (C'est un module ALSA).

PulseAudio est un mélangeur logiciel, par-dessus l'espace utilisateur (comme vous le feriez avec une application). Quand il fonctionne, il utilise Alsa - sans dmix - et gère tout type de mixage, les périphériques, les périphériques réseau, tout par lui-même.

En 2014, vous pouvez toujours exécuter uniquement ALSA. Mais à moins de compiler vous-même vos applications et d'activer la prise en charge d'ALSA partout - ou d'utiliser une distribution basée sur les sources comme Gentoo - vous risquez d'avoir des problèmes de mélange. Les applications précompilées fournies par les distributions ne sont généralement construites qu'avec le support de Pulseaudio, et non d'ALSA pur. Ubuntu, par exemple, préfère PulseAudio. Elle est fournie avec PulseAudio par défaut, de sorte que chaque application est compilée pour n'utiliser que PulseAudio.

PulseAudio a ses avantages. Les gens disent qu'il est bon pour travailler avec de l'audio sur un réseau, et qu'il résout certains problèmes avec les flux audio multicanaux qui se produisaient sous ALSA pur. Il est également censé être plus facile de développer des applications pour PA. Du côté de l'utilisateur final, il est facile de sélectionner de nouveaux appareils, de contrôler le volume par application, etc.

Cependant, dans la configuration par défaut, il ajoute une quantité non négligeable de latence dans le mélange. C'est un gros inconvénient pour certains types de tâches qui nécessitent une faible latence, comme certains jeux et logiciels.

Les logiciels libres constituent une alternative à ces deux solutions, mais ils ne sont pas sous licence GPL, ce qui les rend peu susceptibles d'être adoptés par les distros.

Illustration :

Systèmes sonores typiques alimentés par PulseAudio, comme Ubuntu :

  • Noyau : ALSA -> Userland : PulseAudio -> app1, app2, app3
  • Dans un système Linux classique, PulseAudio mixe le son de toutes vos différentes applications et le transmet en amont à ALSA.

ALSA :

  • Kernel : ALSA -> dmix -> Userland : app1, app2, app3
  • Avec ALSA pur, vous avez besoin de dmix pour mélanger plusieurs applications. Sans cela, ALSA ne peut lire un flux audio qu'à partir d'une seule application à la fois.

OSS :

  • Noyau : OSS -> Userland : app1, app2, app3
  • Avec OSS, les applications de l'utilisateur parlent directement à OSS dans le noyau, qui mélange lui-même les flux.

Donc, pour résumer, dans votre système typique de nos jours, ALSA parle directement à vos cartes son, et Pulseaudio parle à vos applications et programmes et alimente ALSA.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X