PipeWire

From Free Knowledge Base- The DUCK Project: information for everyone
Jump to: navigation, search

PipeWire - a low-level multimedia framework for audio and video under Linux.

PipeWire is expected to provide

  • 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.
  • Seamless support for PulseAudio, JACK, ALSA, and GStreamer applications.
  • Sandboxed applications support. See Flatpak for more info. (not a good selling point)

Linux Mint 22 is one of the distributions switching from PulseAudio to PipeWire as the default sound server. Pipewire brings a custom "Pro Audio" profile in addition to the PulseAudio profiles, selectable through pavucontrol.

PipeWire can be used as an audio server, similar to PulseAudio and JACK. It aims to replace both PulseAudio and JACK, by providing a PulseAudio-compatible server implementation and ABI-compatible libraries for JACK clients.

Like JACK, PipeWire implements no connection logic internally. The burden of watching for new streams and connect them to the appropriate output device or application is left to an external component known as a session manager. WirePlumber is the recommended session manager. It is based on a modular design, with Lua plugins that implement the actual management functionality.

The PipeWire package provides an initial set of configuration files in /usr/share/pipewire. You should not edit these files directly, as package updates will overwrite your changes. To configure PipeWire, you can copy files from /usr/share/pipewire to the alternate system-wide location /etc/pipewire, or to the user location ~/.config/pipewire.

ALSA Compatibility

Install pipewire-alsa (and remove pulseaudio-alsa if it was installed) to route all applications using the ALSA API through PipeWire.