PipeWire (Suomi)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Tango-preferences-desktop-locale.pngTämä artikkeli tai osa vaatii Suomennosta.Tango-preferences-desktop-locale.png

Huomioita: Vianmäärityksestä puuttuu muutama otsikko ja käännökset niille. (Keskustele asiasta Talk:PipeWire (Suomi)#)

PipeWire on uusi multimedia runko GNOMEn kehittäjiltä. Pääkehittäjänä toimii Wim Taymans.

PipeWire tukee säiliöitä kuten Flatpakkia ja ei turvaudu käyttäjäryhmien ääneen tai kuvaan, vaan käyttää ennemminkin PolKit tyyppistä turvamallia kysyen Flatpakkia tai Waylandia oikeudelle nauhoittaa näyttöä tai ääntä.

Asennus

Asenna pipewire paketti virallisesta pakettivarastosta.

Pipewire käyttää Systemd/User palvelimen hallintaan ja automaattiseen kannan aktivointiin. Katso vastaava Systemd/User lisätiedolle käynnistymis käyttäytymisestä ja palvelujen kirjauksista.

Vaihtoehtoisesti voidaan asentaa pipewire-docs paketti dokumenteille. Muita paketteja, kuten pipewire-alsa, pipewire-pulse, ja pipewire-jack, ei normaalisti tarvita ellei niitä haluta käyttää PulseAudio/JACK tilalla. Saatavilla on myös lib32-pipewire ja lib32-pipewire-jack multilib tuelle.

Käyttö

WebRTC näytönjakaminen

Valtaosa selaimista aikaisemmin luotti X11 työpöydän (tai sovelluksien) sieppaukseen kun WebRTC:tä käytettiin (esim. googlen Hangoutit); mutta jos käytetään Waylandia, työpöydän jakaminen on periaatteessa rikki, mutta pipewire pystyy antamaan tuen tätä käyttötapausta varten Waylandin alla.

Tämä vaatii xdg-desktop-portal ja yhden sen taustaohjelman asennettuna [1]. Saatavilla olevat taustaohjelmat:

Firefox (84+) tukee tätä kun taas Chromiumissa (73+) täytyy aktivoida WebRTC PipeWire tuki avaamalla seuraava osoite chromium välilehdellä:

chrome://flags/#enable-webrtc-pipewire-capturer

Jotta xdg-desktop-portal-wlr saadaan toimimaan, täytyy XDG_CURRENT_DESKTOP[2] asettaa:

export XDG_CURRENT_DESKTOP=sway

Huomaa, että Chrome(ium) tällä hetkellä käyttää pipewire 0.2, kun taas Arch tulee pipewire 0.3 kanssa, täytyy siis asentaa libpipewire02 näytönjaon toimivuuden takaamiseksi.

Video

Vaikka kyseinen ohjelma ei ole vielä tuotantovalmis, on kumminkin turvallista kokeilla sitä vapaasti. Valtaosa sovelluksista, jotka luottavat GStreamerin hoitavan esim. kuvan suoratoistoa, näiden pitäisi toimia suorilteen PipeWiren GStreamer lisäosan ansiosta. Sovellukset, kuten esim. cheese, pystyvät siitä syystä jo jakamaan videokuva syötettä käyttäen tätä.

Audio

PipeWirea voidaan käyttää audio palvelimena, joka voidaan rinnastaa PulseAudioon tai JACKiin. Sen tarkoituksena on korvata molemmat PulseAudio ja JACK, tarjoamalla PulseAudio-yhteensopiva palvelin toteutus ja ABI-yhteensopivat kirjastot JACK asiakasohjelmille. Katso tämä blogi kirjaus lisätiedolle.

ALSA/Legacy sovellukset

Asenna pipewire-alsa reitittääksesi kaikki sovellukset käyttäen ALSA APIa PipeWiren kautta.

PulseAudio asiakasohjelmat

Asenna pipewire-pulse. Normaalisti enempää työtä ei tarvita, sillä pipewire-pulse.socket pitäisi olla aktivoituna suoraan paketista. Jos PipeWire ei toimi oikein Järjestelmän käynnistyttyä, kokeile myös käyttäjäpalveluiden pipewire-pulse.service ja pipewire.service aktivointia. Katso Systemd/User.

Kirjaudu uudelleen sisään tai käynnistä uudelleen nähdäksesi vaikutuksen.

Tarkistaaksesi, että korvaava paketti toimii, suorita seuraava komento ja tarkista ulostulo:

$ pactl info
...
Server Name: PulseAudio (on PipeWire 0.3.16)
...

JACK asiakasohjelmat

Asenna pipewire-jack ja käytä pw-jack komentoa, jotta JACK asiakasohjelmat käynnistyvät yhteensopivien kirjastojen kanssa alkuperäisten sijasta libjack*:

pw-jack application

Muussa tapauksessa, asenna pipewire-jack-dropinAUR jotta JACK asiakasohjelmat lataavat yhteensopivat kirjastot alkuperäisten sijasta automaattisesti.

Käytä ldd kometoa varmistamaan, että JACK sovellus yhdistää oikeisiin kirjastoihin:

$ ldd /usr/bin/qjackctl | grep -i libjack
libjack.so.0 => /usr/lib/pipewire-0.3/jack/libjack.so.0 (0x00007f7e5080a000)

Bluetooth laitteet

PipeWire käsittelee Bluetooth audiolaitteita, jos pipewire-pulse paketti on asennettuna. Erityisemmin, mediatilan taustaprosessi tarkastelee /etc/pipewire/media-session.d/with-pulseaudio, ja aktivoi sen bluez5 moduulin automaattisesti, jos tiedosto on olemassa.

Käytä PipeWirea alkuperäisen JACKin päällä

PipeWire voi myös pyöriä JACK asiakasohjelmana alkuperäisen JACK taustaprosessin päällä jos näin halutaan. Katso JACK ja PipeWire lisätiedolle.

Vianmääritys

Rätisevä ääni Source Engine pohjaisissa peleissä

Oletus pituus äänipuskurille (joka on käytännössä ääniviive) on 0.025 sekunttia. Joillekkin komponenteille, tämä pituus on liian pieni, joten tälläistä rätinää voi ilmetä. PulseAudiolla ei ole tätä ongelmaa, koska se nostaa puskurin kokoa automaattisesti, kun puskurin xrun havaitaan. PipeWire ei tee tätä ja ei välttämättä ikinä tulekkaan tekemään tätä. Tapa millä tämän voi korjata on edelleen meneillään.

Tällä hetkellä, toimiva väliaikainen korjaustapa on avata pelin sisäinen konsoli ja painamalla ` nappia (nappi joka on vasemmalla puollella 1:stä) ja kirjoittamalla konsoliin snd_mixahead 0.03. Arvoa kannattaa itse kokeilla, mikä toimii parhaiten.

Aiheeseen liittyvä ongelma: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/401

Lähde: https://csgoguru.com/improve-your-csgo-sound-settings/

Pipewire ei tunnista mikrofonia

pipewire-media-session ei tunnista ALSA PCM laitteita oletukselta. Lisää tämä sen käynnistysasetuksiin pipewiren config tiedostossa:

/etc/pipewire/pipewire.conf
...
exec /usr/bin/pipewire-media-session -e alsa-pcm
...

Käynnistä pipewire uudelleen ja tarkista saatavilla olevat laitteet:

$ pw-record --list-targets
Available targets ("*" denotes default): 62
	58: description="Built-in Audio" prio=1872
	60: description="Built-in Audio" prio=2000
*	62: description="Built-in Audio (Loopback PCM)" prio=1984

Ei ääntä Bluetooth laitteessa

7.12.2020 lähtien, jos ääntä ei ole kun Bluetooth laite on yhdistetty, täytyy vaihtaa oletus "nieluun" ja/tai siirtää nielun syöte oikeaan nieluun. Käytä pactl set-default-sink asettaaksesi nielun ja pactl list sinks listataksesi saatavilla olevat nielut. Tämä voidaan automatisoida udev kanssa käyttäen vastaavaa skriptiä kuin tämä.

Katso tämä Reddit keskustelu syvemmälle keskustelulle asiasta. Skriptin tekijän mukaan, kuuloke profiililla (HSP) saattaa vielä olla ongelmia.

Katso myös