PipeWire on infrastruktuuri äänen ja videon käsittelyyn Linux-alustalla, joka pyrkii yhdistämään PulseAudion ja JACK Audio Connection Kitin käyttötapaukset.[2]

PipeWire
Luoja Wim Taymans
Kehityshistoria
Vakaa versio 1.0.5 ()[1]
Tiedot
Alusta Linux
Lisenssi MIT-lisenssi
Aiheesta muualla
Verkkosivusto
Versiohallinta

PipeWiren alkuperäinen kehittäjä on Wim Taymans, joka sai ajatuksen William Manleyn PulseVideosta, sekä tarpeesta näytön kaappaukseen.[3][4] Taymans liittyi Red Hatille vuonna 2013 ja aloitti PipeWiren kehittämisen vuonna 2015.[3] Alkuperäinen käyttökohde oli videokuvan välittäminen, johon tuli lisänä turvallisuus ja Flatpak-tuki.[3] Taymans oli myös GStreamerin kehittäjä.[3][4] PipeWiren tavoitteena on tukea ammattilaiskäyttöä kuluttajakäytön lisäksi, johon PulseAudio ei pyri.[4] PipeWire käyttää JACKin kaltaista mallia äänen käsittelyyn.[5] PipeWireen on lisätty keskeytyspohjainen (IRQ) ajoitus, jolloin sen latenssi vastaa JACKin tasoa.[6]

Ohjelmisto on suunniteltu korjaamaan PulseAudion ja JACKin ongelmakohdat.[7] PipeWiren eduiksi sanotaan korkea suorituskyky myös alhaisen latenssin kanssa, turvallisuus, joustavuus ja integroitavuus sekä ylläpidettävyys.[7] Muokattavuus soveltuu erikoiskohteisiin kuten sulautettuihin järjestelmiin.[7] Yhteensopivuuden vuoksi asiakasohjelmille on kirjastot, jolloin ne eivät tarvitse muutoksia.[7]

Videokaappaus verkkokameralta on aiemmin tapahtunut suoraan Video4Linux -rajapinnan kautta, mutta siihen liittyvien rajoitteiden ja uusien tarpeiden vuoksi on ilmaantunut tarve vaihtoehtoiselle tavalle.[8][3]

Versio 1.0.0 on julkaistu 26. marraskuuta 2023.[9] Jatkokehityksenä aikomuksena on yhdistää stream- ja filter-rajapinnat, ja lisätä NetJack2-tuki ja FFADO-ajurien tuki. PulseAudio- ja JACK-rajapinnat ovat edelleen tuettuja.[10]

Käyttökohteet muokkaa

PipeWire on alkujaan julkaistu Fedoran versiossa 27.[2] PipeWire korvasi PulseAudion oletuksena käytettävänä Fedoran versiossa 34.[3] GNOME käyttää versiosta 3.38 lähtien PipeWirea näytön jakamiseen Waylandin kanssa.[3][11] Ubuntun versiossa 22.10 PipeWire on oletuksena käytössä.[12][13] Debian siirtyi versiossa 12 PipeWireen.[14]

Tekniikka muokkaa

PipeWire on mediapalvelin, joka suorittaa graafissa sijaitsevia multimediasolmuja. Solmut voidaan suorittaa palvelinprosessissa tai erillisissä prosesseissa, jotka kommunikoivat palvelimen kanssa. Palvelin ja protokolla tukevat videota ja audiota.[15]

PipeWiressa on kaksi pääkomponenttia: graafipohjainen mediakäsittely ja asynkroninen prosessien välinen kommunikaatio (IPC). Palvelinprosessi toteuttaa graafin, ja asiakasohjelmat toimivat tämän kanssa. IPC-mekanismin inspiraatio on Wayland-protokollasta, mutta erikoistuneella serialisoinnilla monimutkaisempien tietorakenteiden vuoksi. PipeWiren arkkitehtuuri perustuu laajennusmoduuleille, jotka voivat muuttaa toimintoja ja saatavia ominaisuuksia.[15][16]

Apuohjelmistot muokkaa

 
Kuvakaappaus Helvumista. Yhteydet esitetty harmailla viivoilla.

PipeWiren ydinpalvelin ei toteuta kaikkea itse, vaan osa toiminnoista on jätetty apuohjelmiin. PipeWiren yhteyksien hallintaan ja esittämiseen on useita apuohjelmia:[17]

  • WirePlumber käsittelee istuntoja ja tukee Lua-kielellä tehtyjä moduuleja
  • qpwgraph on Qt-pohjainen työkalu yhteyksien esittämiseen ja tallentamiseen
  • Helvum on GTK-pohjainen työkalu yhteyksien esittämiseen

Lähteet muokkaa

  1. 1.0.5, (viitattu ). Tieto on haettu Wikidatasta.
  2. a b Improved multimedia support with Pipewire in Fedora 27 20.9.2017. Fedora Magazine. Viitattu 14.10.2019. (englanniksi)
  3. a b c d e f g Christian Fredrik Schaller: PipeWire: the new audio and video daemon in Fedora Linux 34 fedoramagazine.org. 14.5.2021. Viitattu 21.5.2021. (englanniksi)
  4. a b c Launching Pipewire! blogs.gnome.org. 19.9.2017. Arkistoitu 19.9.2017. Viitattu 14.10.2019. (englanniksi)
  5. Wim Taymans: PipeWire (PDF) archive.fosdem.org. Viitattu 14.10.2019. (englanniksi)
  6. Markus Volk: meta-multimedia PATCH pipewire: Upgrade 0.3.80 -> 0.3.81 lore.kernel.org. 6.10.2023. Viitattu 20.10.2023. (englanniksi)
  7. a b c d Changes/DefaultPipeWire fedoraproject.org. Viitattu 15.12.2020. (englanniksi)
  8. PipeWire and fixing the Linux Video Capture stack blogs.gnome.org. 1.10.2021. Viitattu 16.2.2022. (englanniksi)
  9. PipeWire 1.0.0 (2023-11-26) gitlab.freedesktop.org. Viitattu 26.11.2023. (englanniksi)
  10. Christian Fredrik Schaller: PipeWire 1.0 – An interview with PipeWire creator Wim Taymans fedoramagazine.org. 27.11.2023. Viitattu 29.11.2023. (englanniksi)
  11. Introducing GNOME 3.38: “Orbis” help.gnome.org. Viitattu 16.9.2020. (englanniksi) 
  12. Joey Sneddon: Ubuntu 22.10 Makes PipeWire Default for Audio omgubuntu.co.uk. 3.6.2022. Viitattu 21.10.2022. (englanniksi)
  13. Kinetic Kudu Release Notes discourse.ubuntu.com. Viitattu 21.10.2022. (englanniksi)
  14. Michael Larabel: Debian 12 Switches To PipeWire & WirePlumber By Default With The GNOME Desktop phoronix.com. 1.10.2022. Viitattu 20.10.2023. (englanniksi)
  15. a b Design docs.pipewire.org. Viitattu 10.2.2024. (englanniksi)
  16. PipeWire Library docs.pipewire.org. Viitattu 10.2.2024. (englanniksi)
  17. PipeWire wiki.archlinux.org. Viitattu 10.2.2024. (englanniksi)

Aiheesta muualla muokkaa