pipewire
Manage audio and video streams
TLDR
Start the PipeWire daemon
Use a different configuration file
Set the verbosity level (error, warn, info, debug or trace)
Display help
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)