LinuxCommandLibrary

pipewire

Manage audio and video streams

TLDR

Start the PipeWire daemon

$ pipewire
copy

Use a different configuration file
$ pipewire --config [path/to/file.conf]
copy

Set the verbosity level (error, warn, info, debug or trace)
$ pipewire -[v|vv|...|vvvvv]
copy

Display help
$ pipewire --help
copy

SYNOPSIS

pipewire [OPTIONS]

PARAMETERS

--version
    Displays the version information of the PipeWire daemon.

--help
    Shows a help message detailing command-line options.

--verbose, -v
    Increases the verbosity of logging output, providing more detailed information.

--debug, -d
    Enables debug logging, outputting extensive debugging information which can be useful for troubleshooting.

--config FILE, -c FILE
    Specifies an alternative configuration file to load instead of the default.

--nofork
    Prevents the daemon from forking into the background; it runs in the foreground. Useful for debugging or when managed by an external process supervisor.

--daemonize
    Forces the daemon to run in the background (default behavior).

--system
    Runs PipeWire as a system-wide instance, rather than the more common per-user instance. This is typically used for specific server setups.

DESCRIPTION

The pipewire command launches the PipeWire multimedia server, a low-latency, graph-based framework designed to handle audio and video streams on Linux. Its primary goal is to unify and improve upon existing Linux multimedia systems like PulseAudio, JACK, and ALSA for audio, and V4L2 for video. PipeWire offers key features such as low-latency processing for professional audio applications, robust security for sandboxed environments (e.g., Flatpak, Snap), and efficient handling of video streams, including screen sharing capabilities. It aims to provide a modern, flexible, and secure foundation for all multimedia workloads, from desktop audio to complex professional studio setups, and to facilitate seamless integration with Wayland and containerized applications. It typically runs as a daemon, managed by systemd or similar init systems.

CAVEATS

PipeWire is a daemon and not typically interacted with directly by end-users via command-line options for daily use. Most configuration and interaction are handled through configuration files or client applications and utilities like pw-cli or pw-top. While stable and widely adopted, its complex graph architecture can make advanced troubleshooting challenging, especially for newcomers.

CONFIGURATION FILES

PipeWire's behavior is extensively controlled via configuration files. The main configuration files are typically located in /etc/pipewire/ (system-wide defaults) and ~/.config/pipewire/ (user-specific overrides). These files define modules, properties, and graph configurations for various audio and video sinks/sources, as well as rules for device handling.

DAEMON OPERATION

The pipewire command primarily launches the PipeWire daemon process. This daemon manages all multimedia streams, devices, and connections on the system. Users and applications interact with this daemon through PipeWire client libraries (e.g., libpipewire) or through specialized tools like pw-cli for command-line control, rather than directly invoking the pipewire command itself for routine tasks. It is often started automatically at login or boot via systemd.

HISTORY

PipeWire was initiated by Wim Taymans (Red Hat) in 2017 with the goal of addressing the limitations of existing Linux multimedia solutions. It aimed to provide a modern, low-latency framework capable of handling both professional audio (like JACK) and desktop audio (like PulseAudio) simultaneously, while also supporting video processing and offering better security for sandboxed applications. Its design focused on flexibility, modularity, and integration with modern Linux desktop technologies like Wayland. Since its inception, PipeWire has seen rapid adoption and is now the default audio and video server in many major Linux distributions, including Fedora, Ubuntu, and Arch Linux.

SEE ALSO

pulseaudio(1), jackd(1), alsa(7), v4l2(4), pw-cli(1), pw-top(1)

Copied to clipboard