Not working with pipewire streamed audio (raop)
UxPlay is working fine with my IPhone, but not with my linux computer that uses pipewire.
I tried to enable raop support and set it as a sink (that part is working) but I receive no sound... https://wiki.nixos.org/wiki/PipeWire#AirPlay/RAOP_configuration
The ports are open and I tested with disabled firewall as well
This is the debug log:
UxPlay 1.62: An Open-Source AirPlay mirroring and audio-streaming server.
Audio format 1: AAC-ELD 44100/2
GStreamer audio pipeline 1: "appsrc name=audio_source ! queue ! avdec_aac ! audioconvert ! audioresample ! volume name=volume ! level ! autoaudiosink sync=false"
Audio format 2: ALAC 44100/16/2
GStreamer audio pipeline 2: "appsrc name=audio_source ! queue ! avdec_alac ! audioconvert ! audioresample ! volume name=volume ! level ! autoaudiosink sync=false"
GStreamer video pipeline will be:
"appsrc name=video_source ! queue ! h264parse ! avdec_h264 ! videoconvert ! autovideosink name=video_sink sync=false"
Initialized GStreamer video renderer
using system MAC address d8:3a:dd:92:53:6f
Initialized server socket(s)
Accepted IPv4 client on socket 29
Local: 192.168.188.34
Remote: 192.168.188.46
httpd receiving on socket 29
conn_request
OPTIONS rtsp://192.168.188.46/1761028662 RTSP/1.0
CSeq: 1
Client-Instance: CA6B369195C4934E
DACP-ID: CA6B369195C4934E
User-Agent: PipeWire/1.2.7
Handling request OPTIONS with URL rtsp://192.168.188.46/1761028662
RTSP/1.0 200 OK
CSeq: 1
Server: AirTunes/220.68
Public: SETUP, RECORD, PAUSE, FLUSH, TEARDOWN, OPTIONS, GET_PARAMETER, SET_PARAMETER
httpd receiving on socket 29
conn_request
ANNOUNCE rtsp://192.168.188.46/1761028662 RTSP/1.0
CSeq: 2
Client-Instance: CA6B369195C4934E
DACP-ID: CA6B369195C4934E
User-Agent: PipeWire/1.2.7
Content-Type: application/sdp
Content-Length: 186
76 3d 30 0d 0a 6f 3d 69 54 75 6e 65 73 20 31 37
36 31 30 32 38 36 36 32 20 30 20 49 4e 20 49 50
34 20 31 39 32 2e 31 36 38 2e 31 38 38 2e 34 36
0d 0a 73 3d 69 54 75 6e 65 73 0d 0a 63 3d 49 4e
20 49 50 34 20 31 39 32 2e 31 36 38 2e 31 38 38
2e 33 34 0d 0a 74 3d 30 20 30 0d 0a 6d 3d 61 75
64 69 6f 20 30 20 52 54 50 2f 41 56 50 20 39 36
0d 0a 61 3d 72 74 70 6d 61 70 3a 39 36 20 41 70
70 6c 65 4c 6f 73 73 6c 65 73 73 0d 0a 61 3d 66
6d 74 70 3a 39 36 20 33 35 32 20 30 20 31 36 20
34 30 20 31 30 20 31 34 20 32 20 32 35 35 20 30
20 30 20 34 34 31 30 30 0d 0a
Handling request ANNOUNCE with URL rtsp://192.168.188.46/1761028662
RTSP/1.0 200 OK
CSeq: 2
Server: AirTunes/220.68
httpd receiving on socket 29
conn_request
SETUP rtsp://192.168.188.46/1761028662 RTSP/1.0
CSeq: 3
Client-Instance: CA6B369195C4934E
DACP-ID: CA6B369195C4934E
User-Agent: PipeWire/1.2.7
Transport: RTP/AVP/UDP;unicast;interleaved=0-1;mode=record;control_port=6001;timing_port=6002
Handling request SETUP with URL rtsp://192.168.188.46/1761028662
Transport: RTP/AVP/UDP;unicast;interleaved=0-1;mode=record;control_port=6001;timing_port=6002
RTSP/1.0 200 OK
CSeq: 3
Server: AirTunes/220.68
Content-Type: application/x-apple-binary-plist
Content-Length: 42
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>
See #170 (post issues not here, but at https://github.com/FDH2/UxPlay
You seem to be using a non-Apple client with uxplay. UxPlay doesnt support multiroom audio, etc., (and does not (or should not) handle ANNOUNCE RTSP requests)
Form UxPlay's main page:
Note: AirPlay2 multi-room audio streaming is not supported: use shairport-sync for that.
@micartey UxPlay has been updated to send a "501 Not Implemented" response to RTSP requests (such as ANNOUNCE) that it does not support. This will help to avoid future confusion about what it can do.
UxPlay works fine with pipewire . post any issues at the current development site http://github.com/FDH2/UxPlay
try "uxplay -as pipewiresink" to output audio to pipewire
from the README:
GStreamer also searches for the best "audiosink"; override its choice with -as
Maybe my issues is somewhat confusing. I tried to use wireplump to stream the audio to another device that was using UxPlay but it only outputted sound when I used my IPhone and not my other Linux device that streamed audio via wireplump
Uxplay is designed to accept encrypted airplay audio/video from iOS or macOS clients, decrypt them, and render them on the server (It also accepts from a windows client called AirMyPc that emulates a iOS client) So it works with your iphone, but not wireplump. The current development version on http://github.com/FDH2/UxPlay will now respond to wireplump "ANNOUNCE" RTSP requests with the correct "not supported" response, which was missing when you tried it.
An audio-only Airplay server that can be used for multi-room audio (no video) is https://github.com/mikebrady/shairport-sync That could probably (?) handle your "wireplump" (?) audio stream