libpipew...discover(7)
β¨ NAME β¨
libpipewire-module-zeroconf-discover β Zeroconf Discover π
okay bestie, you know how your laptop and your desktop and your weird little server in the closet all want to talk to each other but nobody wants to type in IP addresses?? yeah. this is that. it's the module that goes "hmm who's out there π" and then connects y'all.
π¦ DESCRIPTION π¦
So basically: use zeroconf to detect and load module-pulse-tunnel with the right parameters. that's the whole vibe. it finds the other machines, it wires up the tunnel, it passes the correct args, nobody has to think about it.
and like, the glow-up here?? this will automatically create sinks and sources to stream audio to/from remote PulseAudio servers. sinks = audio goes out to them, sources = audio comes in from them. no cap, it just shows up in your audio devices like a little gift π
oh and it also works with module-protocol-pulse. so if you're kicking it old-school with the PulseAudio protocol, you're still eating good. periodt. π
π MODULE NAME π
libpipewire-module-zeroconf-discover
that's the one you put in your config. copy it carefully bestie, one typo and the whole thing just stares at you silently. π
πΈ MODULE OPTIONS πΈ
pulse.discover-localβ allow discovery of local services as well. it isfalseby default. so by default it's like "i only care about other machines, not me" which honestly? relatable. πpulse.latencyβ the latency to end-to-end latency in milliseconds to maintain. default is200ms. this is your "how much buffer do we give the audio before we vibe-check it" knob. π₯
π EXAMPLE CONFIGURATION π
here's what it looks like when you actually write it down. iconic file path, iykyk:
# ~/.config/pipewire/pipewire.conf.d/my-zeroconf-discover.conf
context.modules = [
{ name = libpipewire-module-zeroconf-discover
args = { }
}
]
and yes, args = { } is empty here because the defaults are doing the heavy lifting. if you want to change pulse.discover-local or pulse.latency, that's where they'd go. π
β οΈ heads up bestie: everything in that args block matters β don't go inventing options that aren't listed above, the module will simply not have a good time.
okay that's the whole page!! no gatekeeping. this one's straight outta PipeWire, version 1.6.11, and it lives comfortably in the Miscellaneous Information Manual as libpipew...discover(7). go stream some audio across your network, you absolute legend π
β¨π«Άπ
π¦ 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