LinuxCommandLibrary

pw-dump

Dump PipeWire object information

TLDR

Print a JSON representation of the default PipeWire instance's current state

$ pw-dump
copy

Print a JSON representation of an object
$ pw-dump [object_id]
copy

Dump the current state monitoring changes, printing it again
$ pw-dump [[-m|--monitor]]
copy

Dump the current state of a remote instance to a file
$ pw-dump [[-r|--remote]] [remote_name] > [path/to/dump_file.json]
copy

Set a color configuration
$ pw-dump [[-C|--color]] [never|always|auto]
copy

Display help
$ pw-dump [[-h|--help]]
copy

SYNOPSIS

pw-dump [OPTIONS]

PARAMETERS

-h, --help
    Show help options and exit.

-o, --output-file=FILE
    Direct the output to the specified FILE instead of standard output (stdout).

-N, --no-colors
    Disable colorized output, if applicable (output is typically non-colored by default).

-m, --monitor
    Monitor for changes in the PipeWire graph and continuously dump new or updated information as it occurs.

-a, --full-dump
    Perform a full dump, including all objects and details that might be omitted in a default, concise dump.

-i, --id=ID
    Dump only the object with the specified ID (PipeWire object identifier).

DESCRIPTION

pw-dump is a powerful diagnostic tool for the PipeWire media server. It provides a comprehensive snapshot of the current state of the PipeWire daemon and its active objects, including nodes, ports, links, devices, and metadata. The output is typically presented in JSON format, making it easy to parse and analyze programmatically or inspect manually.

This utility is invaluable for debugging audio and video routing issues, understanding the intricate connections within the PipeWire graph, and verifying the configuration of sources, sinks, and processing modules. It allows users and developers to gain deep insights into how media streams are managed and processed by PipeWire, aiding in troubleshooting and development efforts.

CAVEATS

  • Requires a running PipeWire daemon to function correctly.
  • The output can be very large and verbose, especially for complex systems or when using the --full-dump option.
  • Interpreting the JSON output requires familiarity with PipeWire's internal object model and graph structure.
  • The user running pw-dump must have appropriate permissions to connect to the PipeWire socket.

OUTPUT FORMAT

The primary output format of pw-dump is JSON. This structured output typically contains an array of objects representing various PipeWire components (e.g., devices, nodes, ports, links, factories, modules, metadata). This machine-readable format is ideal for scripting, automated analysis, and integration into other diagnostic tools.

DEBUGGING AND TROUBLESHOOTING

pw-dump is an essential utility for debugging and troubleshooting audio and video issues on systems utilizing PipeWire. By providing a detailed view of the media graph, it helps identify misconfigurations, analyze data flow paths, and diagnose problems related to audio/video routing, device connectivity, and application interaction with the PipeWire daemon.

HISTORY

PipeWire, and consequently its associated tools like pw-dump, emerged as a modern multimedia framework for Linux, aiming to handle audio, video, and hardware access more efficiently than previous systems. Its development began around 2017 with an initial focus on Wayland screen sharing, eventually expanding to encompass professional audio and replace existing solutions like PulseAudio and JACK. pw-dump has been an integral part of the PipeWire debugging toolkit since its early stages, evolving with the framework to provide increasingly detailed insights into its internal operations and assist developers and users in understanding the system's state.

SEE ALSO

pipewire(1), pw-cli(1), pw-cat(1), pw-play(1), pw-record(1)

Copied to clipboard