PipeWire
PipeWire est un logiciel libre de traitement basse latence et de partage multimédia. Il a pour objectif de remplacer PulseAudio et JACK dans la pile audio Linux au sein de l’environnement GNU/Linux[2] - [3], avec une ABI compatible avec à la fois ALSA, JACK et PulseAudio[4], tout en y intégrant GStreamer. Il apporte ainsi à la vidéo les avantages pour le mixage qu'avait PulseAudio pour l'audio[5] et assure la synchronisation entre ces deux types de flux[6]. Il peut complètement remplacer le service PulseAudio depuis la 0.3.16 sortie le [7]. La distribution ArchLinux, propose dans ses dépôts une version de PipeWire se substituant à PulseAudio le [8], cependant la bibliothèque libpulse est toujours utilisée[9].
Créateur | Wim Taymans (en) |
---|---|
Développé par | Red Hat et Wim Taymans (en) |
Dernière version | 0.3.72 ()[1] |
DĂ©pĂ´t | gitlab.freedesktop.org/pipewire/pipewire |
Écrit en | C |
Système d'exploitation | Type Unix |
Environnement | Linux |
Type |
Serveur de son (en) Serveur vidéo |
Licence | Licence MIT |
Documentation | docs.pipewire.org et gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home |
Site web | pipewire.org |
Origine du projet
Ce projet a Ă©tĂ© crĂ©Ă© par Wim Taymans (en), un des principaux auteurs de GStreamer, alors qu'il travaillait chez Red Hat. Il le crĂ©e initialement sous le nom de Pinos, d'après Pinos de AlhaurĂn, un petit village proche d'oĂą il vivait, au Sud de l'Espagne[5], il a pris le nom de PipeWire en [6].
Aspects techniques
PipeWire implémente les fournisseurs et consommateurs vidéo comme des processus distincts, communiquant avec D-Bus et échangent les images de la vidéo à l'aide de descripteurs de fichiers partagés[5]. Il est conçu pour pouvoir fonctionner avec Wayland, ainsi que les protocoles de contrôle de bureaux à distance ou virtuels, RDP et SPICE, et assurer une compatibilité avec les confinements nécessaires aux fonctionnement de logiciels empaquetés au format Flatpak[6].
Automotive Grade Linux (en) de la Fondation Linux a développé un gestionnaire de session pour PipeWire nommé WirePlumber[10].
La bibliothèque libcamera est une bibliothèque fonctionnant dans l'espace utilisateur, permettant d'intégrer les caméras complexes dans les flux de PipeWire. Elle expose pour cela les API des pilotes du noyau à l'espace utilisateur de manière abstraite, afin d'éviter au développeur d'avoir à gérer les aspects spécifiques aux caméra, et de gérer différents flux simultanés et hétérogènes depuis un seul périphérique. Elle permet également d’agréger des formats vidéos différents pour la visioconférence par exemple. Elle permet également, à l'opposé, de partager un seul flux vidéo, simultanément, dans différentes applications[11].
Références
- « 0.3.72 », (consulté le )
- (en) « PipeWire Should Be One Of The Exciting Linux Desktop Technologies For 2019 », sur Phoronix, (consulté le )
- (en) « Presentation at the FOSDEM: “PipeWire wants to take over your multimedia” », sur FOSDEM
- (en) Christian F.K. Schaller, « PipeWire Late Summer Update 2020 », sur blogs.Gnome.org,
- Christian Schaller, « Fedora Workstation next steps : Introducing Pinos », sur Christian F.K. Schaller, (consulté le )
- (en) Christian F.K. Schaller, « Launching Pipewire! », sur blogs.gnome.org,
- « 0.3.16 release », sur Gitlab de Freedesktop.org,
- « 0.17.1 », sur Compte ArchLinux sur Github : « + conflicts=(pulseaudio pulseaudio-bluetooth) »
- (en) « Remove pipewire-libpulse », sur gitlab.freedesktop.org : « We use the original pulseaudio client library and the replacement server pipewire-pulse. »
- (en) George Kiagiadakis, « WirePlumber, the PipeWire session manager », sur Collabora,
- (en) Raghavendra Rao, « Integrating libcamera into PipeWire », sur Collabora,
Articles connexes
Liens externes
- (en) Site officiel