libpipew...-session(7)
π libpipew...-session(7) π
okay bestie, this is a page from the Miscellaneous Information Manual β it's the man page for the PipeWire module libpipewire-module-rtp-session, and I'm gonna walk you through literally every single thing it says. no skips, no skimming, we're doing this right π«Ά
β¨ NAME β¨
libpipewire-module-rtp-session β RTP session π
πΈ DESCRIPTION πΈ
The rtp-session module creates a media session that gets announced with avahi/mDNS/Bonjour. it's giving "hi, I'm here, come vibe with me" π‘
Other machines on the network that run a compatible session will see each other, and will be able to send audio/midi between each other. mutual discovery, mutual slay π₯
The session setup is based on apple-midi, and it's compatible with apple-midi when the session is using midi. periodt.
π MODULE NAME π
libpipewire-module-rtp-session
π MODULE OPTIONS π
Options specific to the behavior of this module:
local.ifname = <str>β interface name to usecontrol.ip =<str>β control IP address, default"0.0.0.0"control.port =<int>β control port, default"0"net.mtu = <int>β MTU to use, default1280net.ttl = <int>β TTL to use, default1net.loop = <bool>β loopback multicast, defaultfalsesess.discover-localβ discover local services as well, defaultfalsesess.min-ptime = <int>β minimum packet time in milliseconds, default2sess.max-ptime = <int>β maximum packet time in milliseconds, default20sess.latency.msec = <int>β receiver latency in milliseconds, default100sess.name = <str>β a session namesess.ts-offset = <int>β an offset to apply to the timestamp, default-1= random offsetsess.ts-refclk = <string>β the name of a reference clocksess.media = <string>β the media typeaudio|midi|opus, defaultmidistream.props = {}β properties to be passed to the stream
π GENERAL OPTIONS π
Options with well-known behavior β these ones are the classics, iykyk:
remote.nameaudio.formataudio.rateaudio.channelsaudio.layoutaudio.positionnode.namenode.descriptionmedia.namenode.groupnode.latencynode.virtualmedia.class
π§ EXAMPLE CONFIGURATION π§
here's the moment you've been waiting for, the actual config, no cap:
# ~/.config/pipewire/pipewire.conf.d/my-rtp-session.conf
context.modules = [
{ name = libpipewire-module-rtp-session
args = {
#local.ifname = "eth0"
#control.ip = "0.0.0.0"
#control.port = 0
#net.mtu = 1280
#net.ttl = 1
#net.loop = false
#sess.discover-local = false
#sess.min-ptime = 2
#sess.max-ptime = 20
#sess.name = "PipeWire RTP stream"
#sess.media = "audio"
stream.props = {
node.name = "rtp-sink"
#audio.format = "S16BE"
#audio.rate = 48000
#audio.channels = 2
#audio.position = [ FL FR ]
}
}
}
]
lowkey obsessed that almost everything in there is commented out by default β uncomment what you actually want, bestie, don't just yolo the whole block π
Since
0.3.60 β
okay and that's the whole page, we ate and left no crumbs π this was the libpipew...-session(7) page from PipeWire 1.6.11, sitting in the Miscellaneous Information Manual β go forth and RTP-session your little heart out, bestie, you've got this β¨ππ¦
π¦ 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