Ceci est une ancienne révision du document !


 logo de PipeWire

PipeWire

PipeWire est le serveur de son installé par défaut sur Ubuntu à partir de la version Kinetic 22.10.

Un serveur de son permet à plusieurs applications d'utiliser simultanément les pilotes de la carte son, afin de pouvoir être toutes audibles et utilisées simultanément.

Il remplace PulseAudio, le serveur de son installé par défaut jusqu'à Ubuntu Jammy 22.04. Il propose en plus les fonctionnalités avancées utiles dans le domaine de la MAO que proposait jusqu'ici le serveur JACK, qu'il remplace aussi, avec une configuration simplifiée. Il rend possible l'utilisation simultanée de n'importe lesquels de ses logiciels et appareils audio. On peut par exemple pré-écouter un flux audio sur des oreillettes bluetooth tandis qu'on en diffuse un autre sur la carte son intégrée à son ordinateur, le tout en enregistrant le micro de sa webcam dans Audacity

Il dispose de plus des couches de rétro-compatibilité avec les serveurs de son ALSA, PulseAudio, et JACK. Pour en bénéficier il faut installer les paquets pipewire-alsa, pipewire-pulse et pipewire-jack. Grâce à ces paquets, les applications compatibles voient respectivement des serveurs ALSA, PulseAudio, ou JACK tourner, et peuvent s'y connecter. Il s'agit en fait à chaque fois de PipeWire.

PipeWire dispose aussi de fonctionnalités permettant de gérer des flux vidéo, utiles par ex. pour des applications de streaming.

PipeWire est installé par défaut sur Ubuntu à partir de la version Kinetic 22.10. Vous pouvez installer le paquet pipewire-jack pour profiter des applications compatibles JACK.

Sur les versions précédentes il est possible d'installer le paquet pipewire depuis les dépôts officiels à partir de Focal 20.04 (dépôt universe pour cette version précise).

On trouve pipewire-pulse à partir de Jammy 22.04 (dépôt universe pour cette version précise).

On ne trouve les paquets pipewire-alsa et pipewire-jack qu'à partir de Kinetic 22.10.

Avec pipewire-pulse et pipewire-alsa, il est conseillé de désinstaller respectivement PulseAudio et JACK.

Il est aussi possible d'installer PipeWire et tous ses outils sur des versions plus anciennes qui ne les incluent pas dans les dépôts par défaut, à partir d'Ubuntu Bionic 18.04.

Il faut pour cela ajouter les PPA ppa:pipewire-debian/pipewire-upstream1) et ppa:pipewire-debian/wireplumber-upstream2) dans vos sources de logiciels.

Voir ici la documentation en anglais à ce sujet : https://pipewire-debian.github.io/pipewire-debian/

Configuration

Pour une utilisation simple il n'y a rien à configurer. Il suffit de choisir la sortie audio de son choix dans les paramètres du système ou plus rapidement dans le menu système de la barre supérieure (pour GNOME, à adapter si vous utilisez un autre environnement de bureau).

Pour voir la liste des actions disponibles en ligne de commande :

pw-cli help

Pour voir la liste des logiciels et appareils disponibles (via WirePlumber) :

wpctl status

Routage

En plus d'utiliser simultanément plusieurs logiciels et interfaces matérielles, PipeWire permet de les relier ensemble dans n'importe quel sens, à la manière d'un studio virtuel.

On peut utiliser une interface graphique telle que qpwgraph, qui remplace avantageusement QjackCtl (qu'on utilisait pour JACK).

qpwgraph est disponible depuis les dépots officiels : qpwgraph ou en Flatpak.

Chaque élément (matériel ou logiciel) apparaît comme un bloc avec ses entrées à gauche et ses sorties à droite. On peut les relier les unes aux autres en tirant des liens par cliquer-glisser. Les liens peuvent ainsi conduire des signaux d'un logiciel ou d'un périphérique à l'autre. Des signaux :

Il n'est pas indispensable d'utiliser cette interface. Les simples connexions sont gérées automatiquement depuis les paramètres de l'environnement de bureau : en choisissant une sortie audio dans le menu système de GNOME par ex., les logiciels du bureau (tels que le navigateur internet ou les lecteurs audio ou vidéo) se connecteront automatiquement au périphérique audio sélectionné. qpwgraph peux permettre de visualiser ce comportement.

Gestionnaire de session

Le gestionnaire de session pour PipeWire installé par défaut sur Ubuntu est WirePlumber.

Il n'existe pour le moment pas d'interface graphique pour le gérer.

On peut le contrôler avec la commande wpctl et ses fichiers de configuration se trouvent sous /usr/share/wireplumber.

Création d'appareils virtuels

Il peut être utile de créer un appareil virtuel (virtual sink) pour par ex. faciliter le routage entre les différentes applications.

Pour cela créez un fichier ~/.config/pipewire/pipewire.conf.d/10-null-sink.conf contenant par ex. :

10-null-sink.conf
context.objects = [
    {   factory = adapter
        args = {
           factory.name     = support.null-audio-sink
           node.name        = "Virtual Stereo"
           media.class      = Audio/Sink
           object.linger    = true
           audio.position   = [ FL FR ]
           monitor.channel-volumes = true
        }
    }
    {   factory = adapter
        args = {
           factory.name     = support.null-audio-sink
           node.name        = "Virtual Quadri"
           media.class      = Audio/Sink
           object.linger    = true
           audio.position   = [ FL FR RL RR ]
           monitor.channel-volumes = true
        }
    }
]

Ici on crée 2 appareils virtuels, un stéréo, l'autre quadriphonique.

De la même manière il est possible de créer différents types de virtual sinks, par ex. pour diffuser à distance (streamer) de l'audio en utilisant différents protocoles réseaux (ROC, RTP, AirPlay, Pulse Tunnel, JACK Tunnel, etc.). Voir la liste des modules disponibles sur la documentation officielle.


  • pipewire.1684185720.txt.gz
  • Dernière modification: Le 15/05/2023, 23:22
  • par krodelabestiole