PipeWire is a rather new multimedia framework by GNOME. The main developer is Wim Taymans.
PipeWire supports containers like Flatpak and does not rely on user groups audio and video, but rather uses a PolKit-like security model asking Flatpak or Wayland for permission to record screen or audio.
The package installs systemd unit files for the service itself and automatic socket activation (which means it will autostart).
systemctl --user status pipewire.socket systemctl --user status pipewire.service
Optionally, install test PipeWire as a PulseAudio/JACK replacement. Also available are AUR, AUR, and AUR for multilib support.for documents, for the ALSA configuration, for the compatibility libraries for applications using PulseAudio, and for applications using JACK. Normally these are not needed unless one wants to
WebRTC screen sharing
Most browsers used to rely on X11 for capturing the desktop (or apps) when using WebRTC (e.g. on google Hangouts); because Gnome shell uses Wayland by default on Arch when started by GDM, desktop sharing is basically broken, but pipewire is going to provide support for this usecase under Wayland.
This requires Pipewire and xdg-desktop-portal to be installed; Firefox 68 will support PipeWire with a custom patch from fedora, and on Chromium (73+) you need to enable WebRTC PipeWire support the following url in a chromium tab:
Note that since Chrome(ium) is currently using pipewire 0.2 whereas Arch ships pipewire 0.3, you also need to installfor screen sharing to work.
Note that the only supported feature is sharing the entire desktop and not a specific app/window due to missing implementation in xdg-desktop-portal.
Although the software is not yet production ready, it is safe to play around with. Most application that 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. are therefore already able to share video input using it.
Support for the JACK API 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.
Work on ALSA emulation is ongoing but first working code exists.
PipeWire provides a bluetooth module that integrates directly into the Bluez Bluetooth framework. Pairing and management hence works the same since it is handled by higher level interfaces.
Drop-in replacement for PulseAudio/Jack (Experimental)
PipeWire provides ABI-compatible library for PulseAudio and JACK clients.
To use PipeWire as a drop-in replacement, installAUR for PulseAudio and AUR for JACK. It is recommended to reboot after installing to make sure applications use the PipeWire libraries, not PulseAudio/JACK ones. Also, if you need multilib support, there are AUR and AUR.
To check if the replacement is working, run the following command and see the output:
$ pactl info
Server String: pipewire-0 ...
See this blog entry for more information on testing PipeWire.