PipeWire — Multimedia processing


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.

Find Out More
image/svg+xml
image/svg+xml

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.

 

Getting PipeWire


PipeWire should be available in most distributions soon, but for now you can either get the source code from GitHub or install the packages we made for Fedora 27 and Fedora Rawhide.

If you want to get the code from GitHub then the latest PipeWire source code is available at GitHub. To clone the repository, just:

  $ git clone https://github.com/PipeWire/pipewire.git

Setup

PipeWire is using the Meson build system and building PipeWire is fairly straightforward:

  $ ./autogen.sh --prefix=$PREFIX
  $ make
  $ make install
The $PREFIX is commonly set to /usr or /usr/local.

Running

You can test the PipeWire server from the source directory with:

  $ make run

To test video capture and display with SDL from the source directory, try:

  $ SPA_PLUGIN_DIR=build/spa/plugins PIPEWIRE_MODULE_DIR=build  build/src/examples/export-sink

You can play around with the other examples as well. Don't forget to set the correct environment variables as shown above or else the plugins and modules won't be found.

Documentation


A collection of useful pages can be found on the PipeWire wiki.

Developers can check out the PipeWire API documentation.

Get Involved


PipeWire is Free Software and is developed in the open. It was created by Wim Taymans, Principal Engineer at Red Hat and co-creator of the GStreamer multimedia framework. Code can be found on GitHub.

Join us on IRC at #pipewire on Freenode.

Issues are tracked on GitHub Issues.