[RPi4] AirPlay from PipeWire

  • I run LE 12.0 nightly 2024-11-29 on RPi4B. Streaming audio from my iPad mini using AirPlay to the device works smoothly. But I now found that pipewire can use AirPlay to send audio to a device and wanted to see if I could make my Arch Linux laptop stream audio to the RPi4B. I have /etc/nsswitch.conf and avahi-daemon.service set up and port 5353 UDP open and followed the instructions here: https://docs.pipewire.org/page_module_raop_discover.html using the example configuration as starting point.

    The RPi4B are discovered and I can send audio to it from the laptop and it's seemingly playing from there. But on the LE12 side I get the spinning wheel on screen as soon as the stream hits, but then nothing more happens (nothing playing). I tried to tweak various knobs in the configuration file example from docs.pipewire.org, but to no avail. Anybody got a working configuration for this or some pointers to stuff I could try...?

  • There's nothing to change on the LE side because Kodi provides a working AirPlay target that devices can stream to - You proved that with the iPad mini. Ergo, if nothing happens (or wrong things happen) when you stream from the Arch device; something is wrong with the stream that you send.

    It's not an LE problem but if you want us to guess at the issue I'd start by sharing the Arch discover.conf file so we can see what sink properties are being used. Plus a Kodi debug log that might show the inbound stream details (or not, I'm guessing).

  • There's nothing to change on the LE side because Kodi provides a working AirPlay target that devices can stream to - You proved that with the iPad mini. Ergo, if nothing happens (or wrong things happen) when you stream from the Arch device; something is wrong with the stream that you send.

    It's not an LE problem but if you want us to guess at the issue I'd start by sharing the Arch discover.conf file so we can see what sink properties are being used. Plus a Kodi debug log that might show the inbound stream details (or not, I'm guessing).

    Yes, this is not a bug report, just looking for some pointers in case someone had tried this. :)

    The raop-discover.conf I used are the example from pipewire.org. I tried to toggle various of the commented out settings here, but all of them failed, so I was thinking maybe someone had a working config. However the starting point are this:

    The Kodi debug log after a failed attempt:

    https://paste.libreelec.tv/careful-stork.log

  • This is what Kodi announces over mDNS:

    In theory the discover module should be automagically creating an Airplay sink based on the advertised properties (S16,44100,2-ch,etc.) and nothing more than this should be needed:

    Code
    context.modules = [
       {
           name = libpipewire-module-raop-discover
           args = { }
       }
    ]

    What does the output from pactl list sinks show?

  • What does the output from pactl list sinks show?

    On the Arch laptop, I expect? On the LE12 RPi it shows only the librespot pa sink, unrelated.

    I installed only your barebones config this time, globally. Result the same. Output from pactl on laptop (the second entry, "himinbjorg" are the LE12 RPi AirPlay autodiscovered sink) :