PipeWire
PipeWire | |
---|---|
![]() | |
Luoja | Wim Taymans |
Kehityshistoria | |
Vakaa versio | 1.2.3 ()[1] |
Tiedot | |
Alusta | Linux |
Lisenssi | MIT-lisenssi |
Aiheesta muualla | |
Verkkosivusto | |
Versiohallinta | |
Infobox OK |
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]
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
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
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
![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Helvum_patchbay_screenshot.png/250px-Helvum_patchbay_screenshot.png)
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
- ↑ 1.2.3, (viitattu ). Tieto on haettu Wikidatasta.
- ↑ a b Improved multimedia support with Pipewire in Fedora 27 20.9.2017. Fedora Magazine. Viitattu 14.10.2019. (englanniksi)
- ↑ 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)
- ↑ a b c Launching Pipewire! blogs.gnome.org. 19.9.2017. Arkistoitu 19.9.2017. Viitattu 14.10.2019. (englanniksi)
- ↑ Wim Taymans: PipeWire (PDF) archive.fosdem.org. Viitattu 14.10.2019. (englanniksi)
- ↑ Markus Volk: meta-multimedia PATCH pipewire: Upgrade 0.3.80 -> 0.3.81 lore.kernel.org. 6.10.2023. Viitattu 20.10.2023. (englanniksi)
- ↑ a b c d Changes/DefaultPipeWire fedoraproject.org. Viitattu 15.12.2020. (englanniksi)
- ↑ PipeWire and fixing the Linux Video Capture stack blogs.gnome.org. 1.10.2021. Viitattu 16.2.2022. (englanniksi)
- ↑ PipeWire 1.0.0 (2023-11-26) gitlab.freedesktop.org. Viitattu 26.11.2023. (englanniksi)
- ↑ Christian Fredrik Schaller: PipeWire 1.0 – An interview with PipeWire creator Wim Taymans fedoramagazine.org. 27.11.2023. Viitattu 29.11.2023. (englanniksi)
- ↑ Introducing GNOME 3.38: “Orbis” help.gnome.org. Viitattu 16.9.2020. (englanniksi)
- ↑ Joey Sneddon: Ubuntu 22.10 Makes PipeWire Default for Audio omgubuntu.co.uk. 3.6.2022. Viitattu 21.10.2022. (englanniksi)
- ↑ Kinetic Kudu Release Notes discourse.ubuntu.com. Viitattu 21.10.2022. (englanniksi)
- ↑ Michael Larabel: Debian 12 Switches To PipeWire & WirePlumber By Default With The GNOME Desktop phoronix.com. 1.10.2022. Viitattu 20.10.2023. (englanniksi)
- ↑ a b Design docs.pipewire.org. Viitattu 10.2.2024. (englanniksi)
- ↑ PipeWire Library docs.pipewire.org. Viitattu 10.2.2024. (englanniksi)
- ↑ PipeWire wiki.archlinux.org. Viitattu 10.2.2024. (englanniksi)
Aiheesta muualla
- The PipeWire multimedia framework and its potential in AGL (PDF) (englanniksi)
- FAQ (englanniksi)
- PipeWire dokumentaatiota (englanniksi)