SDB:Pulseaudio
Généralités
PulseAudio fournit :
- Logiciel de mixage de plusieurs flux audio, en contournant toutes les restrictions que le matériel a.
- Transparence réseau, permettant à une application de lire ou d'enregistrer de l'audio sur une machine différente de celle sur laquelle elle tourne.
- L'abstraction de l'API son, ce qui évite d'avoir besoin de plusieurs backends dans les applications pour gérer la grande diversité des systèmes de son disponibles sur le marché.
- Abstraction matérielle générique, donnant la possibilité de faire des choses comme des volumes individuels par application.
PulseAudio est livré avec de nombreux modules plugins. Tout l'audio de/vers les clients et les interfaces audio passe par des modules. Les clients PulseAudio peuvent envoyer de l'audio à des " récepteurs " et recevoir de l'audio de " sources ". Un client peut être GStreamer, xinelib, MPlayer ou toute autre application audio. Seuls les pilotes de périphériques/interfaces audio peuvent être des sources ou des récepteurs (ce sont souvent des entrées/sorties matérielles).
Configuration
A partir d'openSUSE 11.0 pulseaudio est utilisé pour les installations GNOME. Par défaut, le démon est automatiquement lancé si une application essaie d'utiliser pulseaudio. Cela en fait une source de problèmes étant donné la grande variété de systèmes de sonorisation/applications utilisées dans les applications multimédias. C'est pourquoi si vous avez des problèmes avec PulseAudio, avant de les signaler à notre Bugzilla, assurez-vous de lire cet article sur la configuration parfaite de PulseAudio. Il contient des informations sur l'utilisation de PulseAudio par tous les systèmes de sonorisation disponibles pour la lecture du son réel. Si, par contre, vous souhaitez désactiver complètement pulseaudio et revenir à ALSA pour toutes les applications basées sur GNOME, veuillez lire la section " Désactiver complètement pulseaudio (ALSA fall-back) " ci-dessous.
Paquets
Les installations de GNOME incluent par défaut tous les outils et paquets nécessaires. Dans d'autres environnements, pulseaudio est souvent intégré en raison de dépendances, mais sans les outils nécessaires pour le contrôler. Par conséquent, les paquets suivants peuvent avoir besoin d'être installés manuellement afin de contrôler le démon pulseaudio :
- le paquet pavucontrol (interface GTK) ou pavucontrol-qt (Interface Qt) - Contrôle du volume PulseAudio
- paprefs - Préférences PulseAudio
- pulseaudio-utils - PulseAudio utilitaires
- padevchooser - Sélecteur d'appareils PulseAudio
- paman - Gestionnaire PulseAudio
- alsa-plugins-pulse (-32bit) - Pulseaudio Plug-In pour la bibliothèque ALSA
Utilisation par défaut de Pulseaudio comme back-end alsa
Pour que toutes les applications qui prennent en charge alsa mais pas pulseaudio puissent jouer du son via pulseaudio vous devez installer alsa-plugins-pulse (ainsi que le paquet 32bit si vous êtes en 64bit) et exécutez la commande suivante pour la rendre par défaut :
Si, par contre, vous souhaitez désactiver complètement pulseaudio et revenir à ALSA pour toutes les applications basées sur GNOME, veuillez lire la section " Désactiver complètement pulseaudio (ALSA fall-back) " ci-dessous.
Désactivation du module OSS
Certaines applications utilisant la sortie audio OSS, si elles ne sont pas correctement configurées, peuvent interrompre pulseaudio, de sorte que pulseaudio ne peut se connecter au périphérique matériel de sortie. Ceci peut être désactivé en exécutant :
puis ajouter blacklist snd-pcm-oss
au fichier /etc/modprobe.d/50-blacklist.conf
. (Extrait de wiki ArchLinux.)
Désactivation du démarrage automatique de Pulseaudio
En raison de dépendances, il n'est souvent pas possible de désinstaller complètement pulseaudio. Pour empêcher l'utilisation de pulseaudio, le démarrage automatique du démon peut être empêché en réglant autospawn = no dans /etc/pulse/client.conf
Issues
Pas de son après l’installation
Il y a eu des cas où le volume est coupé par défaut, et ceci n'est pas visible dans le mélangeur KDE. Pour corriger cela, lancez padevchooser
(vous devrez peut-être l'installer), cliquez sur l'icône de la barre d'état, et choisissez "Volume Control". Vérifiez que tout n'est pas mis en sourdine, y compris après avoir commencé à jouer du son dans une application (l'application doit apparaître dans l'onglet "Lecture").
Si le son ne fonctionne toujours pas, ou si les outils pulseaudio ne fonctionnent pas, essayez d'ajouter votre utilisateur aux groupes "pulse" et "pulse-access" (Yast > User and Group Management >[select user] > Edit > Details > Additional Groups). Vous devrez vous déconnecter et vous reconnecter pour que cela prenne effet.
Son 5.1
Il y a eu des problèmes lors de l'installation du son 5.1, voir bug 381686 pour plus d'informations. Beaucoup de gens ont une carte Surround, mais ont des haut-parleurs pour seulement deux canaux, donc PulseAudio ne peut pas vraiment choisir une configuration Surround par défaut. Pour activer tous les canaux, éditez /etc/pulse/daemon.conf : décommentez la ligne default-sample-channels (c'est-à-dire enlevez le point-virgule du début de la ligne) et mettez la valeur 6 si vous avez une configuration 5.1, ou 8 si vous avez une configuration 7.1 etc. Ou encore plus facile, vous pouvez exécuter paprefs et régler la configuration des enceintes via l'interface graphique paprefs.
Problèmes lors de la lecture audio
Éditez /etc/pulse/daemon.conf : dé-commentez les fichiers default-fragments et default-fragment-size-msec, et changez les valeurs par défaut 4 et 25 en 16 et 21.
S'il vous plaît rapporter dans bug 381686 si cela fonctionne ou non pour vous.
Aucun son dans Tumbleweed après le 26-11-2018.
Sur openSUSE, le snapshot Tumbleweed 20181126 et les versions ultérieures peuvent ne produire aucun son. Essayez d'abord un redémarrage. S'il n'y a toujours pas de son, si la variable d'environnement obsolète ALSA_CONFIG_PATH est définie. La variable doit être supprimée. La commande suivante répare les défaillances possibles de l'installation :
Revenir à esound
Supprimer tous les paquets pulseaudio* et installer esound.
Grésillement avec OpenAL (Jeux)
Le plugin alsa qui oblige les applications à utiliser pulseaudio provoque souvent une mauvaise qualité sonore dans les jeux qui utilisent OpenAL pour la sortie du son. Jusqu'à et y compris openSUSE 11.1 openal-soft ne supportait pas puseaudio nativement. Pour réparer le son dans les jeux, débarrassez-vous de pulseaudio ou installez un backport de Factory.
Désactivation complète de pulseaudio (repli sur ALSA)
Sous openSUSE 11.2, pulseaudio est le sous-système audio choisi pour toutes les applications basées sur GNOME. Ceci peut causer divers problèmes de coexistence, en particulier en ce qui concerne le phonon, le sous-système sonore de KDE qui utilise ALSA. Un symptôme très courant est qu'ALSA audio est incapable d'acquérir une programmation en temps réel (ou plus précisément en temps quasi-réel), ce qui a pour effet de retarder et/ou de couper le son. Beaucoup ont constaté que la désactivation complète du pulseaudio, et donc l'utilisation forcée d'ALSA par toutes les applications basées sur GNOME, fonctionne beaucoup mieux pour eux. Pour ce faire, procédez comme suit :
- Désactivez l'audio pulsée :
- Supprimez tous les paquets pulseaudio sauf libpulse-mainloop-glib0 et libpulse0, car ils sont requis par toutes les applications basées sur GNOME (car ils sont compilés avec pulseaudio par défaut).
- Cacher les bibliothèques fournies par les paquets libpulse-mainloop-glib0 et libpulse0, afin de forcer les applications GNOME à se replier sur ALSA. Pour ce faire, écartez-les en exécutant les commandes suivantes en tant que root (openSUSE 11.2 x86_x64 assume) :
cd /usr/lib64 md HIDDEN mv *pulse* HIDDEN ldconfig
Notez que si sous $HOME/.pulse vous avez correctement configuré les fichiers de configuration (par exemple, à partir du moment où pulseaudio a été activé), la dernière étape ci-dessus pour masquer les bibliothèques pulseaudio peut ne pas être nécessaire. Cependant, si vous supprimez accidentellement (ou intentionnellement) $HOME/.pulse, les applications basées sur GNOME perdront à nouveau le son. Indépendamment du contenu de /etc/asound.conf, déplacer les bibliothèques est la seule méthode garantie pour forcer un retour en arrière vers ALSA.
- Utilisez un mélangeur compatible ALSA (par exemple kmix sous KDE ou alsamixer dans un terminal) et assurez-vous que tous les canaux qui vous intéressent ne sont pas muets.
Notez qu'il s'agit d'une solution de contournement, pas d'une solution définitive : si le paquet libpulse-mainloop-glib0 et/ou libpulse0 est mis à jour, vous devrez réexécuter ces commandes pour déplacer les bibliothèques pulseaudio en utilisant une autre commande, comme celle ci-dessus.
Trucs et astuces
Le démon PulseAudio ne démarre pas après la réinstallation
Vous verrez peut-être :
E :[pulseaudio] main.c : Le démarrage du démon a échoué.
Déplacez ~/.config/pulse
vers ~/.config/pulseold
et essayez de relancer le démon pulseaudio. Ça devrait être bon au deuxième essai.
Compression de la plage dynamique (mode nuit)
Pulseaudio supporte les plugins LADSPA, grâce auxquels un plugin compresseur peut être utilisé pour atteindre ce que l'on appelle souvent le "mode nuit", le but étant de réduire le volume des séquences d'action (explosions, etc.) dans les films et autres médias sans diminuer le volume du dialogue plus calme.
Les plugins LADSPA de Steve Harris sont disponibles dans openSUSE et incluent un certain nombre de compresseurs (nous utiliserons le compresseur "SC1" dans cet exemple), le paquet s'appelle ladspa-swh-plugins, installez-le et aussi un panneau de contrôle avancé du volume et des sorties Pulseaudio, comme pavucontrol ou pavucontrol-qt.
zypper install ladspa-swh-plugins pavucontrol
Ouvrez ensuite un éditeur de texte en tant que root et éditez le fichier /etc/pulse/default.pa, à la fin du fichier ajoutez ce qui suit :
.ifexists module-ladspa-sink.so .nofail load-module module-ladspa-sink sink_name=compressor plugin=sc1_1425 label=sc1 control=5,100,-25,8,2.5,0 .fail .endif
Ensuite, enregistrez et fermez le fichier. Ouvrez maintenant un terminal et redémarrez Pulseaudio :
pulseaudio -k pulseaudio --start
Now open pavucontrol and the SC1 LADSPA plugin should be a selectable output device.
Réglage du compresseur SC1
Les six valeurs après control= representent, dans l'ordre:
control=temps d'attaque (ms), temps de retour (ms), niveau Seuil (dB), Ratio (1:n), Knee radius (dB), Rattrapage de gain (dB)
Les réglages utilisés dans l'exemple précédent donnent de bons résultats dans de nombreux cas, mais l'un des réglages que vous pouvez parfois vouloir ajuster est le " niveau seuil ". Il est réglé sur -25 dans l'exemple mais si le compresseur semble s'engager souvent pour le dialogue (ce qui n'est pas ce que nous voulons - nous voulons qu'il s'engage pour des scènes d'action fortes et autres) essayez -20, ou si une piste a un volume particulièrement faible en général, ainsi le compresseur ne se met pas pour le dialogue mais le son reste trop élevé, modifier la valeur en -30 peut améliorer les résultats. Voir la documentation pour plus de détails.
Multiples périphériques audio
L'exemple ci-dessus rend le plugin SC1 LADSPA disponible en tant que périphérique de sortie acheminé vers votre périphérique audio " par défaut ". Si vous possédez plusieurs appareils de sonorisation et que vous souhaitez tous les utiliser en mode nuit, installez d'abord pulseaudio-utils (s'il n'est pas déjà installé) et obtenez les identifiants d'appareils pertinents en ouvrant un terminal et en le faisant fonctionner :
pacmd list-sinks | grep name:
Vous obtiendrez un résultat ressemblant à ceci :
name: <alsa_output.pci-0000_00_01.1.hdmi-stereo> name: <alsa_output.pci-0000_00_14.2.analog-stereo>
Remplacez le contenu à ajouter à la fin de /etc/pulse/default.pa montré dans l'exemple précédent par le suivant :
.ifexists module-ladspa-sink.so .nofail load-module module-ladspa-sink sink_name=compressor master=alsa_output.pci-0000_00_01.1.hdmi-stereo plugin=sc1_1425 label=sc1 control=5,100,-25,8,2.5,0 load-module module-ladspa-sink sink_name=compressor master=alsa_output.pci-0000_00_14.2.analog-stereo plugin=sc1_1425 label=sc1 control=5,100,-25,8,2.5,0 .fail .endif
Vous pouvez voir que par rapport à l'exemple précédent, cet exemple inclut des paramètres master= qui sont définis sur les identificateurs de périphérique comme indiqué dans le résultat de pacmd qui a été récupéré (donc ne faites pas simplement un copier-coller arbitraire, vous devrez le modifier pour utiliser vos identificateurs). Redémarrez ensuite Pulseaudio comme décrit précédemment et vous devriez avoir des périphériques de sortie de plugin SC1 LADSPA pour chacun de vos périphériques audio.