OPUS support

hyperion

New Member
Joined
May 1, 2023
Messages
39
Please add OPUS support : it's the de facto standard for audio coding in 2023 and the best quality codec.

Most media servers are using OPUS by default.

Thanks :)
 
Upvote 13
Lightweight Music Server (LMS) doesn't transcode so it might be how Navidrome/upmpd serves the file. If we call the GetMediaInfo action during playback of a .opus track we'll be able to see how upmpd advertises the track and how Navidrome serves it:
Thank you for the research. I was able to investigate based on your input and it seems that something very strange is happening. The metadata through the HTTP-Get does not match what is actually decoded.
For example, when I disable transcoding in Navidrome for upmpd, then the tracks are just skipped as if the wiim isn't able to play them. This happens in BubbleUPNP or the Wiim Home App when accessing umpmd directly through the Home Music Share.

However when I change the transcoding option in Navidrome for upmpd to Flac, the playback works fine BUT the metadata for me as well shows Content Type Ogg.
What actually is played is not ogg however, because if we change the Transcoding settings in Navidrome to transcode to Flac 192kHz we get:
Code:
song:rate_hz 192000
song:format_s32
though the reported GetMediaInfo still reports ogg.

I don't know how the chain exactly looks but I am certain that at least on my setup there is no opus playing.
 
For example, when I disable transcoding in Navidrome for upmpd, then the tracks are just skipped as if the wiim isn't able to play them. This happens in BubbleUPNP or the Wiim Home App when accessing umpmd directly through the Home Music Share.
Are you using upmpdcli (https://hub.docker.com/r/giof71/upmpdcli/tags?name=edge)? I've tried it with Lightweight Music Server and it works pretty well.

Is transcoding configured via Players in the Navidrome UI? I'm assuming that if I configure upmpdcli with a Navidrome instance then I'll see upmpdcli in the Players menu?

However when I change the transcoding option in Navidrome for upmpd to Flac, the playback works fine BUT the metadata for me as well shows Content Type Ogg.
What actually is played is not ogg however, because if we change the Transcoding settings in Navidrome to transcode to Flac 192kHz we get:
Code:
song:rate_hz 192000
song:format_s32
though the reported GetMediaInfo still reports ogg.
Do those song attributes come from the GetMediaInfo response? If you paste the URL into a browser is the resulting file a 192kHz flac file?

If you click the vertical ellipsis next to a transcoded track in BubbleUPnP and select Show metadata, what does Stream #1 report?

It's possible that upmpdcli is presenting some attributes from the original track and some from the transcoded.
 
Ok I found the culprit, it seems that BubbleUPNP was not able to handle the opus files.
Playing .opus with the Wiim app through upmpdcli and Navidrome seems to work. I disabled all transcodings in the Players Tab in Navidrome and it play just fine now. At least I do not see any CPU spikes on my server that would indicate transcoding and there is almost no data going through the Wiim App.

What still worries me that the Wiim app shows the .opus played as 16-Bit. I think libopus outputs 32 Bit float and the codec should, at least in theory be able to reproduce more than 16 Bit.

Is transcoding configured via Players in the Navidrome UI? I'm assuming that if I configure upmpdcli with a Navidrome instance then I'll see upmpdcli in the Players menu?
Yes, for me the player name is "upmpdcli-subsonic-plugin [Lavf]". If I change this, then the format delivered to the Wiim is changed too.

But as I said all seems to work now when going directly through the Wiim App. Ideally, the 16 Bit decoding is adressed some time because that does not seem correct.
 
Back
Top