PipeWire

PipeWire is low-level multimedia framework that provides:

- Graph based processing
- Support for out-of-process processing graphs with minimal overhead
- Flexible and extensible media format negotiation and buffer allocation
- Hard real-time capable plugins
- Very low-latency for both audio and video processing

See Overview for an overview of PipeWire and Design for the design principles guiding PipeWire.

### Components

PipeWire ships with the following components:

- a PipeWire Daemon that implements the IPC and graph processing
- an example PipeWire Session Manager that manages objects in the PipeWire Daemon
- a set of PipeWire Tools to introspect and use the PipeWire Daemon
- a PipeWire Library to develop PipeWire applications and plugins (tutorial).
- the SPA (Simple Plugin API) used by both the PipeWire Daemon and in the PipeWire Library.

### API Documentation

See PipeWire API

### More Documentation

See our Wiki for More information on how to configure and use PipeWire.

### Resources

- LAC 2020 Paper
- PipeWire Under The Hood
- PipeWire: The Linux audio/video bus (LWN)
- PipeWire Wikipedia