libpipew...e-tunnel(7)
π libpipewire-module-pipe-tunnel β Unix Pipe Tunnel π
okay bestie, so this is the manual page for libpipewire-module-pipe-tunnel(7) β literally the entire Unix Pipe Tunnel page, and we're gonna get through it together, no cap. π«Ά
β¨ NAME β¨
libpipewire-module-pipe-tunnel β Unix Pipe Tunnel π
πΈ DESCRIPTION πΈ
The pipe-tunnel module hands you a source or a sink that tunnels all the audio to or from a unix pipe respectively. like, the whole thing. every bit of the audio. it's giving tunnel. it ate. π
π MODULE NAME π
libpipewire-module-pipe-tunnel
π¦ MODULE OPTIONS π¦
tunnel.modeβ the desired tunnel to create. (Defaultplayback) β¨tunnel.may-pauseβ if the tunnel stream is allowed to pause on xrunpipe.filenameβ the filename of the pipe.stream.propsβ Extra properties for the local stream.
Now let's break the modes down, because this is the main character part of the whole page:
- When
tunnel.modeiscapture, a capture stream on the default source is created. The samples captured from the source will be written to the pipe. π₯ - When
tunnel.modeissink, a sink node is created. Samples played on the sink will be written to the pipe. π« - When
tunnel.modeisplayback, a playback stream on the default sink is created. The samples read from the pipe will be played on the sink. π - When
tunnel.modeissource, a source node is created. Samples read from the the pipe will be made available on the source. π€
(yes, "the the" β I'm keeping it exactly as written, that's the source's vibe, not mine π)
tunnel.may-pause allows the tunnel stream to become inactive (paused) when there is no data in the fifo or when the fifo is full. π₯ For capture and playback tunnel.mode this is by default true. For source and sink tunnel.mode, this is by default false. A paused stream will consume no CPU and will resume when the fifo becomes readable or writable again. so it's napping, not dead. iconic.
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. (iykyk)
remote.nameaudio.formataudio.rateaudio.channelsaudio.layoutaudio.positionnode.latencynode.namenode.descriptionnode.groupnode.virtualmedia.classtarget.objectto specify the remote name or serial id to link to
When not otherwise specified, the pipe will accept or produce a 16 bits, stereo, 48KHz sample stream. π§
β EXAMPLE CONFIGURATION OF A PIPE PLAYBACK STREAM β
# ~/.config/pipewire/pipewire.conf.d/my-pipe-tunnel.conf
context.modules = [
{ name = libpipewire-module-pipe-tunnel
args = {
tunnel.mode = playback
#tunnel.may-pause = true
# Set the pipe name to tunnel to
pipe.filename = "/tmp/fifo_output"
#audio.format=<sample format>
#audio.rate=<sample rate>
#audio.channels=<number of channels>
#audio.position=<channel map>
#target.object=<remote target node>
stream.props = {
# extra sink properties
}
}
}
]
π«Ά reminder bestie: copy that config exactly, commented lines and all. the # lines are optional ideas, not requirements. don't come for me if you uncomment something and it does a thing. π
okay that's the whole page!! this was PipeWire 1.6.11, and it's the libpipew...e-tunnel(7) page β go tunnel some audio, you absolute icon ππβ¨
π¦ where this page comes from
- fedora 44: pipewire-libs 1.6.11-1.fc44 Β· MIT AND GPL-2.0-or-later AND BSD-2-Clause AND LGPL-2.0-or-later
- fedora 44: pipewire-libs 1.6.11-1.fc44 Β· MIT AND GPL-2.0-or-later AND BSD-2-Clause AND LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms