# PipeWire — Next-Generation Audio and Video Framework for Linux > A low-latency multimedia framework that unifies audio and video handling on Linux. It replaces both PulseAudio and JACK while maintaining full compatibility with applications built for either. ## Install Save as a script file and run: # PipeWire — Next-Generation Audio and Video Framework for Linux ## Quick Use ```bash # PipeWire is pre-installed on Fedora 34+ and Ubuntu 22.10+ # Check if PipeWire is running pw-cli info # Install on Ubuntu (if not default) sudo apt install pipewire pipewire-pulse wireplumber # Restart the service systemctl --user restart pipewire pipewire-pulse wireplumber ``` ## Introduction PipeWire is a server and API for handling multimedia on Linux, designed to replace both PulseAudio (consumer audio) and JACK (professional low-latency audio) with a single unified framework. It also handles video streams, enabling secure screen sharing under Wayland compositors. ## What PipeWire Does - Routes audio and video streams between applications and hardware devices - Provides PulseAudio and JACK compatibility layers for existing applications - Enables low-latency audio processing suitable for professional music production - Handles screen capture and camera streams for Wayland-native applications - Manages Bluetooth audio codecs including AAC, LDAC, and aptX ## Architecture Overview PipeWire is written in C and runs as a user-space daemon managed by a session manager (WirePlumber by default). It processes media through a graph of linked nodes, where each node represents a source, sink, or filter. The graph executes in a real-time thread with configurable quantum (buffer) sizes as low as 32 samples. Compatibility modules translate PulseAudio and JACK API calls into native PipeWire operations. ## Self-Hosting & Configuration - Ships as the default audio stack on Fedora, Ubuntu 22.10+, and many modern distros - On older systems, install pipewire, pipewire-pulse, and wireplumber packages - Configure default sample rate and buffer size in pipewire.conf - Use WirePlumber Lua scripts to define routing policies and device profiles - Adjust Bluetooth codec preferences in the bluetooth configuration files ## Key Features - Drop-in replacement for both PulseAudio and JACK simultaneously - Sub-millisecond latency capability for real-time audio work - Secure video capture for screen sharing under Wayland using xdg-desktop-portal - Per-stream volume control, routing, and format negotiation - Bluetooth audio with support for modern high-quality codecs ## Comparison with Similar Tools - **PulseAudio** — the previous standard for desktop Linux audio; PipeWire replaces it with lower latency - **JACK** — professional audio server; PipeWire provides equivalent latency with simpler setup - **ALSA** — kernel-level audio layer; PipeWire sits above ALSA and adds routing and mixing - **CoreAudio (macOS)** — Apple's integrated audio stack; PipeWire serves a similar unified role on Linux ## FAQ **Q: Can I use PipeWire for professional audio production?** A: Yes. With buffer sizes down to 32 samples, it matches JACK's latency for real-time work. **Q: Will my PulseAudio applications still work?** A: Yes. PipeWire includes a PulseAudio compatibility daemon that handles existing apps transparently. **Q: Does PipeWire handle screen sharing?** A: Yes. It provides the video capture backend for Wayland screen sharing via xdg-desktop-portal. **Q: How do I switch from PulseAudio to PipeWire?** A: Install pipewire-pulse and wireplumber, then disable PulseAudio. Most modern distros handle this automatically. ## Sources - https://gitlab.freedesktop.org/pipewire/pipewire - https://pipewire.org --- Source: https://tokrepo.com/en/workflows/asset-aeb98f26 Author: Script Depot