Pipewire-0.3.66

Introduction to Pipewire

The pipewire package contains a server and userspace API to handle multimedia pipelines. This includes a universal API to connect to multimedia devices, as well as sharing multimedia files between applications.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Pipewire Dependencies

Recommended

Optional

alsa-lib-1.2.8, Avahi-0.8, BlueZ-5.66, fdk-aac-2.0.2, FFmpeg-5.1.2, libcanberra-0.30, libdrm-2.4.115 (for one example and libcamera support), libxcb-1.15, libsndfile-1.2.0, libusb-1.0.26, Opus-1.3.1, SDL2-2.26.3 (for some examples), Valgrind-3.20.0, Xorg Libraries, Doxygen-1.9.6 and Graphviz-7.1.0 (for documentation), JACK, ldacBT, libcamera, Vulkan, WirePlumber (runtime, for running Pipewire daemon), and xmltoman

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pipewire

Installation of Pipewire

Install pipewire by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dsession-managers= .. &&
ninja

To test the result, issue: ninja test. One test named test-support is known to fail.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dsession-managers=: This switch prevents automatic downloading external dependencies.

-Ddocs=true: This switch enables the generation of HTML documentation. The optional dependencies for documentation need to be installed for this to work.

-Dman=true: This switch enables the generation of manual pages. The optional dependencies for documentation need to be installed for this to work.

-Dffmpeg=enabled: This switch enables using ffmpeg for audio conversion as a SPA backend.

Contents

Installed Programs: pipewire, pipewire-avb, pipewire-pulse, pw-cat, pw-cli, pw-dot, pw-dump, pw-jack, pw-link, pw-loopback, pw-metadata, pw-mididump, pw-mon, pw-profiler, pw-reserve, pw-top, pw-v4l2, spa-acp-tool, spa-inspect, spa-json-dump, spa-monitor, spa-resample, and pw-dsdplay, pw-midiplay, pw-midirecord, pw-play, and pw-record (symlinks to pw-cat)
Installed Libraries: libpipewire-0.3.so and 56 modules below /usr/lib/pipewire-0.3 and /usr/lib/spa-0.2
Installed Directories: /usr/include/pipewire-0.3, /usr/include/spa-0.2, /usr/lib/alsa-lib, /usr/lib/pipewire-0.3, /usr/lib/spa-0.2, /usr/share/alsa-card-profile, /usr/share/pipewire, and /usr/share/spa-0.2

Short Descriptions

pipewire

is a service that allows access to multimedia devices and allows sharing of multimedia files between applications

pipewire-media-session

is a service that allows a desktop environment to know when media files are being played through pipewire

pipewire-pulse

starts a Pulseaudio-compatible version of the pipewire service

pw-cat

allows you to play or record media using a pipewire instance

pw-cli

allows you to interact with a pipewire instance

pw-dot

lists all of the daemons and objects in use by pipewire

pw-dump

dumps debug messages from a local or remote pipewire instance to the console

pw-jack

runs JACK applications on a pipewire instance

pw-link

links pipewire ports together

pw-loopback

initializes a loopback link between two different pipewire ports. This is useful for testing and debugging

pw-metadata

inspects, adds, and removes metadata for objects

pw-mididump

dumps MIDI messages from a file to the screen

pw-mon

allows you to monitor pipewire instances

pw-profiler

tracks memory usage and API calls used by pipewire

pw-reserve

reserves or monitors a device via D-Bus

pw-top

displays real-time performance information from pipewire

pw-v4l2

runs v4l2 applications on a pipewire instance

spa-acp-tool

inspects the card profile of a given sound card

spa-inspect

allows you to inspect pipewire plugins

spa-json-dump

dumps the current pipewire configuration in JSON format.

spa-monitor

allows you to monitor pipewire plugins

spa-resample

resamples a given file

libpipewire-0.3.so

contains API functions for handling multimedia pipelines