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
pw-link
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
pw-link - The PipeWire Link Command
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