PipeWire

Un article de Wikipédia, l'encyclopédie libre.
PipeWire

Description de cette image, également commentée ci-après
JACK vu comme un périphérique PulseAudio en novembre 2020, dans PavuControl
Informations
Créateur Wim Taymans (en)Voir et modifier les données sur Wikidata
Développé par Red Hat et Wim Taymans (en)Voir et modifier les données sur Wikidata
Dernière version 0.3.40 ()[1]Voir et modifier les données sur Wikidata
Dépôt gitlab.freedesktop.org/pipewire/pipewireVoir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Système d'exploitation Type UnixVoir et modifier les données sur Wikidata
Environnement LinuxVoir et modifier les données sur Wikidata
Type Serveur de son (en)
Serveur vidéoVoir et modifier les données sur Wikidata
Licence Licence MITVoir et modifier les données sur Wikidata
Documentation docs.pipewire.org et gitlab.freedesktop.org/pipewire/pipewire/-/wikis/homeVoir et modifier les données sur Wikidata
Site web pipewire.orgVoir et modifier les données sur Wikidata

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].

Origine du projet[modifier | modifier le code]

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[modifier | modifier le code]

Modules de PipeWire

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[modifier | modifier le code]

  1. « Release 0.3.40 »
  2. (en) « PipeWire Should Be One Of The Exciting Linux Desktop Technologies For 2019 », sur Phoronix, (consulté le )
  3. (en) « Presentation at the FOSDEM: “PipeWire wants to take over your multimedia” », sur FOSDEM
  4. (en) Christian F.K. Schaller, « PipeWire Late Summer Update 2020 », sur blogs.Gnome.org,
  5. a b et c Christian Schaller, « Fedora Workstation next steps : Introducing Pinos », sur Christian F.K. Schaller, (consulté le )
  6. a b et c (en) Christian F.K. Schaller, « Launching Pipewire! », sur blogs.gnome.org,
  7. « 0.3.16 release », sur Gitlab de Freedesktop.org,
  8. « 0.17.1 », sur Compte ArchLinux sur Github : « + conflicts=(pulseaudio pulseaudio-bluetooth) »
  9. (en) « Remove pipewire-libpulse », sur gitlab.freedesktop.org : « We use the original pulseaudio client library and the replacement server pipewire-pulse. »
  10. (en) George Kiagiadakis, « WirePlumber, the PipeWire session manager », sur Collabora,
  11. (en) Raghavendra Rao, « Integrating libcamera into PipeWire », sur Collabora,

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]