PipeWire  0.3.63
PipeWire Module: Unix Pipe Tunnel

The pipe-tunnel module provides a source or sink that tunnels all audio to or from a unix pipe respectively.

Module Options

  • tunnel.mode: the desired tunnel to create. (Default playback)
  • pipe.filename: the filename of the pipe.
  • stream.props: Extra properties for the local stream.

When tunnel.mode is capture, a capture stream on the default source is created. Samples read from the pipe will be the contents of the captured source.

When tunnel.mode is sink, a sink node is created. Samples read from the pipe will be the samples played on the sink.

When tunnel.mode is playback, a playback stream on the default sink is created. Samples written to the pipe will be played on the sink.

When tunnel.mode is source, a source node is created. Samples written to the pipe will be made available to streams connected to the source.

When pipe.filename is not given, a default fifo in /tmp/fifo_input or /tmp/fifo_output will be created that can be written and read respectively, depending on the selected tunnel.mode.

General options

Options with well-known behavior.

When not otherwise specified, the pipe will accept or produce a 16 bits, stereo, 48KHz sample stream.

Example configuration of a pipe playback stream

1 context.modules = [
2 { name = libpipewire-module-pipe-tunnel
3  args = {
4  tunnel.mode = playback
5  # Set the pipe name to tunnel to
6  pipe.filename = "/tmp/fifo_output"
7  #audio.format=<sample format>
8  #audio.rate=<sample rate>
9  #audio.channels=<number of channels>
10  #audio.position=<channel map>
11  #target.object=<remote target node>
12  stream.props = {
13  # extra sink properties
14  }
15  }
16 }
17 ]