mirror of
https://gitlab.freedesktop.org/pipewire/pipewire
synced 2024-09-06 00:40:34 +00:00
![Peter Hutterer](/assets/img/avatar_default.png)
This is a good first (top) page to have in the docs, let's move it out from the pipewire heading. This doesn't change any of the links and the renaming isn't required (subpage controls whether it's a top-level item and the meson.build order decides its spot in he list). Still, better to have the filenames represent the layout.
43 lines
1.7 KiB
Plaintext
43 lines
1.7 KiB
Plaintext
/** \page page_overview Overview
|
|
|
|
PipeWire is a new low-level multimedia framework designed from scratch that
|
|
aims to provide
|
|
|
|
- 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
|
|
- achieve very low-latency for both audio and video processing
|
|
|
|
The framework is used to build a modular daemon that can be configured to:
|
|
|
|
- be a low-latency audio server with features like pulseaudio and/or jack
|
|
- a video capture server that can manage hardware video capture devices and
|
|
provide access to them
|
|
- a central hub where video can be made available for other applications
|
|
such as the gnome-shell screencast API.
|
|
|
|
|
|
## Motivation
|
|
|
|
Linux has no unified framework for exchanging multimedia content between
|
|
applications or even devices. In most cases, developers realized that
|
|
a user-space daemon is needed to make this possible:
|
|
|
|
- For video content, we typically rely on the compositor to render our
|
|
data.
|
|
- For video capture, we usually go directly to the hardware devices, with
|
|
all security implications and inflexible routing that this brings.
|
|
- For consumer audio, we use PulseAudio to manage and mix multiple streams
|
|
from clients
|
|
- For Pro audio, we use JACK to manage the graph of nodes.
|
|
|
|
None of these solutions (except perhaps to some extent Wayland), however,
|
|
were designed to support the security features that are required when
|
|
dealing with flatpaks or other containerized applications. PipeWire
|
|
aims to solve this problem and provides a unified framework to run both
|
|
consumer and Pro audio as well as video capture and processing in a
|
|
secure way.
|
|
|
|
*/
|