libpipew...ban-recv(7)
πΈ NAME πΈ
libpipewire-module-vban-recv β a VBAN receiver, bestie π
(this one lives in the Miscellaneous Information Manual, and the page you're reading is libpipew...ban-recv(7), iykyk)
β¨ DESCRIPTION β¨
Okay so the vban-recv module spins up a PipeWire source that catches audio and midi VBAN packets for you π
It listens on one specific port β 6980 β and for every VBAN stream that shows up on that port, it makes a stream. One port in, a stream per sender out. That's the whole vibe π
π MODULE NAME π
libpipewire-module-vban-recv
periodt π
π¦ MODULE OPTIONS π¦
These are the options that are specifically about how this module behaves, no cap:
local.ifname = <str>β the interface name to usesource.ip = <str>β the source ip address to listen on, default127.0.0.1source.port = <int>β the source port to listen on, default6980node.always-process = <bool>βtrueto receive even when not runningsess.latency.msec = <str>β target network latency in milliseconds, default100stream.props = {}β properties to be passed to all the streamstream.rules = <rules>β match rules, usecreate-streamactions
π₯ stream.rules matches π₯
These are the things you can match on, bestie:
vban.ipβ the IP address of the VBAN sendervban.portβ the port of the VBAN sendersess.nameβ the name of the VBAN stream
π stream.rules create-stream π
On top of all the properties that can be passed to a stream, you can also set this one:
sess.latency.msec = <str>β target network latency in milliseconds, default100
π GENERAL OPTIONS π
Options with well-known behavior (the classics, the icons, the main characters):
remote.nameaudio.layoutaudio.positionmedia.namemedia.classnode.namenode.descriptionnode.groupnode.latencynode.virtual
π EXAMPLE CONFIGURATION π
Slap this in # ~/.config/pipewire/pipewire.conf.d/my-vban-recv.conf and you're SO set:
context.modules = [
{ name = libpipewire-module-vban-recv
args = {
#local.ifname = eth0
#source.ip = 127.0.0.1
#source.port = 6980
sess.latency.msec = 100
#node.always-process = false
#audio.position = [ FL FR ]
stream.props = {
#media.class = "Audio/Source"
#node.name = "vban-receiver"
}
stream.rules = [
{ matches = [
{ sess.name = "~.*"
#sess.media = "audio" | "midi"
#vban.ip = ""
#vban.port = 1000
#audio.channels = 2
#audio.format = "U8" | "S16LE" | "S24LE" | "S32LE" | "F32LE" | "F64LE"
#audio.rate = 44100
}
]
actions = {
create-stream = {
stream.props = {
#sess.latency.msec = 100
#target.object = ""
#audio.position = [ FL FR ]
#media.class = "Audio/Source"
#node.name = "vban-receiver"
}
}
}
}
]
}
}
]
β Since β
0.3.76 β yeah it's been around a minute, and it ate π
and that's the whole page, bestie π this gem comes to you from PipeWire version 1.6.11 β go forth, receive those packets, and stay iconic πβ¨π¦
π¦ 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