Skip to content

pipewire

pipewire

Install Pipewire

echo "media-video/pipewire X bluetooth dbus elogind pulseaudio readline sound-server ssl ffmpeg extra gsettings gstreamer pipewire-alsa v4l" >> /etc/portage/package.use/pipewire
emerge --ask media-video/pipewire

List output ports

pw-link -o

List input ports

pw-link -i

List links

pw-link -i

List port latencies

pw-link -t

Monitor links and ports

pw-link -m

pw-cli

List all variables

pw-cli list-vars

Load a module

pw-cli load-module <module>

Unload module

pw-cli unload-module <module>

Connect to a remote

pw-cli connect

Duscibbect from a remote

pw-cli disconnect

List connected remotes

pw-cli list-remotes

Switch between current remotes

pw-cli switch-remote

Get info about all objects

pw-cli info all
pw-cli create-device <factory_name>

Create a device from a factory

pw-cli create-node

Create a node from a factory

pw-cli create-node <factory_name>

Destroy a global object

pw-cli destroy <object_id>

Create a link between nodes

pw-cli create-link <node-id> <port-id> <node-id> <port-id>

Export a local node to the current remote

pw-cli export-node <node_id>

Enumerate params of an object

pw-cli enum-params <object-id> <param-id>

Set param of an object

pw-cli set-param <object-id> <param-id> <param-json>

Set permissions for a client

pw-cli permissions <client-id> <object> <permission>

Get permissions of a client

pw-cli get-permissions <client-id>

Send a command

pw-cli send-command <object-id>

Quit pw-cli

pw-cli quit

pw-config - Debug PipeWire Config parsing

List config paths and config sections and display the parsed output.

This tool can be used to get an overview of the config file that will be parsed by the PipeWire server


List all config files that will be used

pw-config

Config Name

pw-config --name pipewire.conf

List all config sections used by the PipeWire pulseaudio server

pw-config -n pipewire-pulse.conf list

List the context.properties fragments used by the JACK clients

pw-config -n jack.conf list context.properties

List the merged context.properties used by the JACK clients

pw-config -n jack.conf merge context.properties

List the merged context.modules used by the PipeWire server and reformat

pw-config -n pipewire.conf -r merge context.modulesq

pw-container - The PipeWire container utility

!!! Example Run pw-dump of the Core object. Note the difference in the object permissions when running pw-dump with and without pw-container"

```bash
pw-container ’pw-dump i 0’
```

Run pw-dump of itself. Note the difference in the Client security tokens when running pw-dump with and without pw-container.

pw-container ’pw-dump pw-dump’

pw-dot - The PipeWire dot graph dump

Show all object types

pw-dot --all

Show linked objects only

pw-dot --smart

Show all object properties

pw --detail

Output file name. - is for stdout

pw-dot --output=-

Lay the graph from left to right, instead of dot’s default top to bottom

pw-dot --lr

Lay the graph using 90-degree angles in edges

pw-dot --90

Read objects from pw-dump JSON file

pw-dot --json

pw-dump - The PipeWire state dumper

The name of the remote instance to dump. If left unspecified, a connection is made to the default PipeWire instance.

pw-dump --remote=NAME

Monitor PipeWire state changes, and output JSON arrays describing changes

pw-dump --monitor

Force raw output

pw-dump --raw

Indentation amount (default 2)

pw-dump --indent 2

SPA JSON output

pw-dump --spa

pw-jack - Use PipeWire instead of JACK

Set samplerate

pw-jack -s 48000

List all port and their links

pw-link -iol

List all links and monitor changes until pw-link is stopped

pw-link -lm

Link the given output port to the input port

pw-link paplay:output_FL alsa_output.pci-0000_00_1b.0.analog-stereo:playback_FL

List links and their Id

pw-link -lI

Destroy the link with id 89

pw-link -d 89

Disconnect ports

pw-link --disconnect

!!! Example "Monitor links and ports "

```bash
pw-link --monitor
```

pw-loopback - PipeWire loopback client

The name of the remote instance to connect to. If left unspecified, a connection is made to the default PipeWire instance.

pw-loopback --remote=NAME

Name of the loopback node

pw-loopback --name=NAME   

Name of the loopback node group

pw-loopback --group=NAME

Number of channels to provide

pw-loopback --channels=NUMBER

Channel map (default [ FL, FR ])

pw-loopback --channel-map=MAP

Desired latency in ms

pw-loopback --latency=LATENCY    

Added delay in seconds (floating point allowed)

pw-loopback --delay=DELAY

Target device to capture from

pw-loopback --capture=TARGET   

Target device to play to

pw-loopback --playback=TARGET   

Wanted properties of capture node (in JSON)

pw-loopback --capture-props=PROPS

Wanted properties of playback node (in JSON)

pw-loopback --playback-props=PROPS  

pw-metadata - The PipeWire metadata

List available metadata objects

pw-metadata --list

Keeps running and log the changes to the metadata

pw-metadata --monitor

Delete all metadata for id or for the specified key of object id. Without any option, all metadata is removed.

pw-metadata --delete

Metadata name

pw-metadata --name default

pw-mididump - The PipeWire MIDI dump

The name the remote instance to monitor. If left unspecified, a connection is made to the default PipeWire instance

pw-mididump --remote=NAME

pw-mon - The PipeWire monitor

pw-mon --remote=NAME

Hide node properties

pw-mon --hide-props

Hide node parameters

pw-mon --hide-params

Print empty line after every event to help streaming parser

pw-mon --print-separator

pw-profiler - The PipeWire profiler

Profiler output name

pw-profiler --output profiler.log

Dump raw data as JSON

pw-profiler --json

Collect this many samples

pw-profiler --iterations

pw-reserve - The PipeWire device reservation utility

Name to reserve

pw-reserve --name Audio0

Application Name

pw-reserve --appname

Monitor only

pw-reserve --monitor

Request release when busy

pw-reserve --release

pw-top - The PipeWire process viewer

Run in non-interactive batch mode, similar to top’s batch mode.

pw-top --batch-mode

Exit after NUMBER of batch iterations. Only used in batch mode.

pw-top --iterations=NUMBER

The name the remote instance to monitor. If left unspecified, a connection is made to the default PipeWire instance

pw-top --remote=NAME

pw-v4l2 - Use PipeWire instead of V4L2

The name of the remote instance to connect to. If left unspecified, a connection is made to the default PipeWire instance

pw-v4l2 -r NAME

List Devices

pw-v4l2 v4l2-ctl --list-devices

pipewire-pulse - The PipeWire PulseAudio replacement

Set context properties

pipewire-pulse --properties

Load config

pipewire-pulse --config pipwire-pulse.conf

pipewire-avb

pipewire-avb