PipeWire
PipeWire is a rather new multimedia framework by GNOME. The main developer is Wim Taymans.
Because PipeWire supports containers like Flatpak it doesn't rely on the user groups audio and video, but rather uses a complex PolKit-like security model asking Flatpak or Wayland for permission to record screen or audio.
Contents
Installation
Install the pipewire package from the official repositories or the pipewire-gitAUR package from the AUR.
Usage
Screen sharing
While Gnome shell uses Wayland by default on Arch (at least when started by GDM), screen sharing on videoconferencing services will not work, except if Pipewire is installed; Firefox already supports PipeWire, but Chromium 75 requires to enable WebRTC PipeWire support in chrome://flags. You also need xdg-desktop-portal (as described here.
Video
Although the software is not yet production ready, it is safe to play around with. Most application which rely on GStreamer to handle e.g. video streams should work out-of-the-box due to the PipeWire GStreamer plugin. Applications like e.g. cheese are therefore already able to share video input using it.
The GStreamer autoplugging process obviously requires that the PipeWire process is running beforehand. Hence you must start pipewire
prior to using it.
Audio (JACK)
Support for the Jack protocol on top of PipeWire is implemented and first applications relying on said interface are working in a test environment. Through that work one is able to achieve the low latency needed for pro-audio with PipeWire.
A detailed description of how to enable and use it can be found here.
ALSA/Legacy applications
Work on ALSA emulation is ongoing but first working code exists.
Bluetooth
PipeWire provides a bluetooth module which integrates directly into the Bluez Bluetooth framework. Pairing and management hence works the same since it is handled by higher level interfaces.
See also
- Wiki — PipeWire Wiki on GitHub
- Pipewire Update Blog Post — Blog post from January 2018 outlining the state of PipeWire at the time