App version
Production
Issue description
Playback on the phone works fine (FLAC, direct play). When casting to the Sonos speaker, every track is abandoned after 2–7 seconds and Symfonium skips to the next one. No audio. The one MP3 in the library plays on Sonos without issues, so the speaker itself and the connection are fine.
What the server logs show
The Sonos device fetches the stream URL directly from the server (UA Linux UPnP/1.0 Sonos/96.1-79270 (ZPS36)). Two configurations, two results:
- Renderer max bitrate = Original → no transcode parameters in the URL, server returns the raw FLAC (audio/flac, correct Content-Length, Accept-Ranges, valid fLaC header). Sonos downloads ~5 MB of the 54 MB file and gives up.
- Renderer max bitrate = 320 kbps → the URL Sonos requests now ends with …&v=1.13.0&c=Symfonium&f=json&maxBitRate=320&format=opus
The server honours this and returns audio/ogg (Opus). Sonos does not support Opus and gives up the same way.
The provider’s transcoding settings are set to on-the-fly, MP3, 320 kbps, and the renderer settings for the Sonos device also show MP3 — yet the request carries format=opus. Changing the format setting has no effect on what is sent for the UPnP renderer.
Workaround in place
An nginx rule in front of the server rewrites format=opus → format=mp3 for requests whose User-Agent contains Sonos/. This works, but it is a proxy-side patch for a client-side decision.
Request
Could the renderer (or provider) transcoding format setting be honoured when casting to UPnP renderers — or, given that Sonos is a known device family without Opus support, could Symfonium default to MP3 for Sonos automatically? Happy to provide Symfonium debug logs if that helps.
Device type
Phone
Media provider
Subsonic (Open)
Steps to reproduce
Replaying the exact same request against the server with format=mp3 instead of format=opus returns audio/mpeg, and Sonos plays that stream to the end (a full track downloaded as one request, 14 MB, no skip). So the only difference between failure and success is the format parameter Symfonium chooses for the UPnP renderer.
I searched existing issues first
on
I understand that logs are mandatory
on
Log upload name / description
Shanster