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 :)
 
  • Wow
Reactions: sNc
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.
 
Have you tried Symfonium? It's a much better pairing for OpenSubsonic servers.
Yes but since Navidrome does not support DLNA or Airplay as of 0.59 directly, all audio played has to go through the Symfonium app to be able to play on Wiim (at least that is my understanding). Since this affects battery life majorly this was not feasabile for me and the reason why I took the route through upmpdcli.
 
Yes but since Navidrome does not support DLNA or Airplay as of 0.59 directly, all audio played has to go through the Symfonium app to be able to play on Wiim (at least that is my understanding). Since this affects battery life majorly this was not feasabile for me and the reason why I took the route through upmpdcli.
The queue is held in Symfonium but the audio is pulled directly from Navidrome (CurrentURI from GetMediaInfo shows the source IP).
Given the queue is held in Symfonium it does need to remain active in the background, to provide WiiM with the URL of the next track, but that shouldn't drain the battery unnecessarily (make sure Advanced > Database > Extract waveforms is disabled).
BubbleUPnP works the same way unless you proxy WiiM with BubbleUPnP server.
 
The queue is held in Symfonium but the audio is pulled directly from Navidrome (CurrentURI from GetMediaInfo shows the source IP).
Given the queue is held in Symfonium it does need to remain active in the background, to provide WiiM with the URL of the next track, but that shouldn't drain the battery unnecessarily (make sure Advanced > Database > Extract waveforms is disabled).
BubbleUPnP works the same way unless you proxy WiiM with BubbleUPnP server.
I tried it again. Same problem as with BubbleUPNP. If I do not transcode anything (disable Transcoding in Navidrome) Symfonium just skips the files and nothing is played. If I enable transcoding in Navidrome (for Symfonium [Lavf]), the file plays on Wiim and is displayed correctly on Symfonium.
Interestingly when I parse with HTTP while Symfonium skips the non transcoded tracks I can see the Wiim reading the correct title information of the tracks but there is no "rate, format, bitrate" information in the output. So it seems it can read the ogg container inside the opus file at least.

Adding to this I am trying this on Wiim Mini, I don't know if Wiim Pro / Amp is differrent in firmware and maybe has opus capabilities?

Anyways, I think I have to live with playing through Wiim App or transcoding to flac first.
 
Help me to understand this. Where the Opus is supported and where it is not. I have Wiim Ultra

When using YoutubeMusic service in Wiim app - ?
When using Chromecast for YTM (mobilephone to Wiim device) - ?

In both options it is not supported?
 
Last edited:
Help me to understand this. Where the Opus is supported and where it is not. I have Wiim Ultra
The lack of Opus support appears limited to the playback of local content through third party control points to the UPnP interface, though even that depends on external factors, such as the media server and control point in use.
 
Last edited:
  • Like
Reactions: sNc
Back
Top