libpipew...aop-sink(7)

πŸ’– libpipew...aop-sink(7) πŸ’–

okay bestie, welcome to the AirPlay Sink manual page, she's giving Miscellaneous Information Manual energy and honestly? iconic. πŸŽ€


✨ NAME ✨

libpipewire-module-raop-sink β€” AirPlay Sink πŸ¦‹


✨ DESCRIPTION ✨

so basically this module spins up a brand new Sink that streams your audio straight to an AirPlay device. slay. πŸ”₯

fr fr, most of the time you don't even have to touch this β€” the sink gets auto-created by RAOP Discover with all the right parameters already handled for you. but if you're feeling main character energy, you can totally create a RAOP sink manually too. no cap. πŸ’…


✨ MODULE NAME ✨

libpipewire-module-raop-sink

like yes, that's the name, that's her. πŸ‘‘


✨ MODULE OPTIONS ✨

these are the options that are specific to how this module behaves, bestie. pay attention πŸ“

  • raop.ip β€” the ip address of the remote end, aka where you're sending the vibe. πŸ“
  • raop.port β€” the port of the remote end.
  • raop.name β€” the name of the remote end.
  • raop.hostname β€” the hostname of the remote end.
  • raop.transport β€” the data transport to use, one of "udp" or "tcp". defaults to "udp".
  • raop.encryption.type β€” the encryption type to use. one of "none", "RSA" or "auth_setup". default is "none".
  • raop.audio.codec β€” the audio codec to use. it needs to be "PCM", no negotiating. defaults to "PCM".
  • raop.password β€” the password to use. 🀫
  • stream.props = {} β€” properties to be passed to the sink stream.

options with well-known behavior πŸ’«

these ones are the classics, they know what they're doing:

  • remote.name
  • audio.format
  • audio.rate
  • audio.channels
  • audio.layout
  • audio.position
  • node.name
  • node.description
  • node.group
  • node.latency
  • node.virtual
  • node.network
  • media.class

✨ EXAMPLE CONFIGURATION ✨

here's what it looks like in the wild, copy-paste ready for your ~/.config/pipewire/pipewire.conf.d/my-raop-sink.conf 🫢

# ~/.config/pipewire/pipewire.conf.d/my-raop-sink.conf

context.modules = [
{   name = libpipewire-module-raop-sink
    args = {
        # Set the remote address to tunnel to
        raop.ip = "127.0.0.1"
        raop.port = 8190
        raop.name = "my-raop-device"
        raop.hostname = "My Service"
        #raop.transport = "udp"
        raop.encryption.type = "RSA"
        #raop.audio.codec = "PCM"
        #raop.password = "****"
        #audio.format = "S16"
        #audio.rate = 44100
        #audio.channels = 2
        #audio.position = [ FL FR ]
        stream.props = {
            # extra sink properties
        }
    }
}
]

(the commented-out lines are just chillin', waiting for you to un-comment them when you're ready πŸ’œ)


✨ SEE ALSO ✨

  • RAOP Discover 🌈

and that's the whole page, bestie β€” no notes, she ate. πŸ’…βœ¨

this was libpipew...aop-sink(7) from PipeWire 1.6.11, mwah, go stream something gorgeous πŸŽ€πŸŒΈπŸ’–

πŸ“¦ where this page comes from