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 use
  • control.ip =<str> β€” control IP address, default "0.0.0.0"
  • control.port =<int> β€” control port, default "0"
  • net.mtu = <int> β€” MTU to use, default 1280
  • net.ttl = <int> β€” TTL to use, default 1
  • net.loop = <bool> β€” loopback multicast, default false
  • sess.discover-local β€” discover local services as well, default false
  • sess.min-ptime = <int> β€” minimum packet time in milliseconds, default 2
  • sess.max-ptime = <int> β€” maximum packet time in milliseconds, default 20
  • sess.latency.msec = <int> β€” receiver latency in milliseconds, default 100
  • sess.name = <str> β€” a session name
  • sess.ts-offset = <int> β€” an offset to apply to the timestamp, default -1 = random offset
  • sess.ts-refclk = <string> β€” the name of a reference clock
  • sess.media = <string> β€” the media type audio|midi|opus, default midi
  • stream.props = {} β€” properties to be passed to the stream

🌈 GENERAL OPTIONS 🌈

Options with well-known behavior β€” these ones are the classics, iykyk:

  • remote.name
  • audio.format
  • audio.rate
  • audio.channels
  • audio.layout
  • audio.position
  • node.name
  • node.description
  • media.name
  • node.group
  • node.latency
  • node.virtual
  • media.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