libpipew...2-driver(7)
β¨ libpipew...2-driver(7) β¨
okay bestie, quick vibe check first: this page lives in the Miscellaneous Information Manual, aka section 7. Sit down, grab a strawberry π, and let's get into it.
π NAME π
libpipewire-module-netjack2-driver β the Netjack2 driver. periodt.
π DESCRIPTION π
So the netjack2-driver module hands you a source or a sink that follows a netjack2 manager. It's literally following the manager around like a loyal bestie π«Ά.
It's meant to be used over stable (ethernet) network connections, with minimal latency and jitter. no cap, that's the whole point.
Now, normally the driver is the one deciding how many ports it sends and receives from the manager. But by default, those values are set to -1 so that the manager decides the number of ports instead. the manager said "I got this" π
.
With the global or per stream audio.port and midi.ports properties, this behaviour can be adjusted.
The driver will send out UDP messages on a (typically) multicast address to inform the manager of the available driver. That then instructs the manager to configure and start the driver. it's giving "hey bestie I'm here" β¨.
On the driver side, a sink and/or source with the specified number of audio and midi ports will be created. On the manager side there will be a corresponding source and/or sink created respectively. matching! iconic! π
The driver will be scheduled with exactly the same period as the manager, but with a configurable number of periods of delay β see netjack2.latency, default 2.
π MODULE NAME π
libpipewire-module-netjack2-driver
β¨ MODULE OPTIONS β¨
driver.modeβ the driver mode,sink|source|duplex, defaultduplex. This sets the per streamaudio.portandmidi.portsdefault from-1to0.sinkmode defaults to no source ports,sourcemode to no sink ports, andduplexleaves the defaults as they are. choose your fighter πlocal.ifname = <str>β interface name to usenet.ip =<str>β multicast IP address, default"225.3.19.154"net.port =<int>β control port, default19000net.mtu = <int>β MTU to use, default1500net.ttl = <int>β TTL to use, default1net.loop = <bool>β loopback multicast, defaultfalsesource.ip =<str>β IP address to bind to, default"0.0.0.0"source.port =<int>β port to bind to, default0(allocate)netjack2.client-nameβ the name of the NETJACK2 client.netjack2.latencyβ the latency in cycles, default2audio.portsβ the number of audio ports. Can also be added to the stream props. A value of-1will configure to the number of audio ports on the manager.midi.portsβ the number of midi ports. Can also be added to the stream props. A value of-1will configure to the number of midi ports on the manager.source.propsβ Extra properties for the source filter.sink.propsβ Extra properties for the sink filter.
πΈ GENERAL OPTIONS πΈ
Options with well-known behavior. the classics π
remote.nameaudio.channelsaudio.layoutaudio.positionnode.namenode.descriptionnode.groupnode.virtualmedia.classtarget.objectto specify the remotenode.nameorserial.idto link to
π¦ EXAMPLE CONFIGURATION OF A DUPLEX SINK/SOURCE π¦
copy this, it's so good π«Ά
# ~/.config/pipewire/pipewire.conf.d/my-netjack2-driver.conf
context.modules = [
{ name = libpipewire-module-netjack2-driver
args = {
#netjack2.client-name = PipeWire
#netjack2.latency = 2
#midi.ports = 0
#audio.ports = -1
#audio.channels = 2
#audio.position = [ FL FR ]
source.props = {
# extra source properties
}
sink.props = {
# extra sink properties
}
}
}
]
ngl bestie, plug in that ethernet cable first. "stable connection" is not a suggestion, it's the whole assignment π
and that's the page!! this one's coming at you straight from PipeWire, version 1.6.11 β go forth and multicast, mwah ππβ¨
π¦ 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