PipeWire

From ArchWiki
Jump to navigation Jump to search

From pipewire.org:

PipeWire is a project that aims to greatly improve handling of audio and video under Linux. It aims to support the usecases currently handled by both PulseAudio and Jack and at the same time provide same level of powerful handling of Video input and output. It also introduces a security model that makes interacting with audio and video devices from containerized applications easy, with supporting Flatpak applications being the primary goal. Alongside Wayland and Flatpak we expect PipeWire to provide a core building block for the future of Linux application development. Features include:
  • Capture and playback of audio and video with minimal latency.
  • Real-time Multimedia processing on audio and video.
  • Multiprocess architecture to let applications share multimedia content.
  • GStreamer plugins for easy use and integration in current applications.
  • Sandboxed applications support. See Flatpak for more info.

Installation

Install the pipewire package from the official repositories or the pipewire-gitAUR package from the AUR.

Usage

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