Mobile Transcoding Not Working (Navidrome)

Issue description:

I have been investigating high mobile data usage related specifically to Symfonium (27GB in a month). I’ve looked through all my settings and it all seems to look fine, but I noticed that it may not actually be transcoding my media (which most of it is FLAC). I’m using Navidrome (Subsonic) as my provider. In my Symfonium settings, I have mobile max bitrate set to 192kbps and WiFi maximum set to 320kbps with ‘force instant transcoding’ enabled. On the Navidrome side, I haven’t configured any specific transcoding settings. On the ‘Now Playing’ screen, the song info always shows the original quality.

I’m sure I have a setting wrong or may be misinterpreting something, but my assumption is my high data usage is due to streaming FLAC while on mobile which is not what I’m attempting to do.

Logs:

Upload description: exonintrendo

Additional information:

 
I do see the following in my Navidrome logs indicating that transcoding=false. I’m not sure if that’s due to Navidrome refusing to transcode if Symfonium requested or if Navidrome is not receiving any indication that it should transcode.
 

Reproduction steps:

 

  • Navidrome installation with no server-side transcoding options set
  • Symfonium installed with both mobile and WiFi (for testing) max bitrates set to something lower than FLAC original (192kbps and 320kbps respectively, for example)
     

Media provider:

Subsonic

Screenshots:

 

    

In the logs Symfonium properly request transcode in all the attempts

https://xxxxx/rest/stream.view?id=03e68d1f247f1c70f6d76d0cf1af2e83&u=REDACTED&t=REDACTED&s=REDACTED&v=1.13.0&c=Symfonium&f=json&maxBitRate=192&format=opus&timeOffset=151

But yes Navidrome returns FLAC

2026-03-10 15:28:17.575 Verbose ExoPlayer/3      [X] Track:0, id=null, mimeType=audio/flac, container=audio/flac, channels=2, sample_rate=44100, supported=YES

@deluan any idea how it’s possible ? From memory if ffmpeg is not present it returns an error but maybe this was changed and it’s back to returning the non transcoded file? (It should not to avoid huge phone bills)

It should return an error if ffmpeg is not available.
What Navidrome version is this? What is the configuration? Do you see any errors in Navidrome’s log?

@deluan
Navidrome version 0.60.3 (34c6f12a)

Below are some screenshots of my current configuration. I haven’t specified any server-side transcoding that I’m aware of. Compose file here for reference: services: navidrome: container_name: navidrome image: deluan/navidr - Pastebin.com

Any changes to the server configuration (navidrome.toml) ?

I think I see the issue: The Target Format for opus is called oga so it does not match what Symfonium is requesting (opus). This was changed a long time ago (years ago), but you may still have the previous configuration. You’ve been using Navidrome for a while, right? :slight_smile:

Yeah, I’ve been using it for quite some time (love it, btw!). Should I replace some of those settings? I can spin up a new instance and copy what’s there if that’s the best way.

Oh, and my navidrome.toml file is empty. Here’s a fresh set of logs from startup if that helps. _ _ _ _| \ | | (_) | || \| | __ ___ ___ _ - Pastebin.com

That did it! I spun up a new instance, blew my old transcoding profiles away and duplicated what the new instance had. Looks like I’m transcoding again. Thank you both! Love both pieces of software!

1 Like

@deluan it should probably return an error in case users delete the profiles ? This should not matter with the new Transcoding endpoint but such high usage can trigger high bills for users.

I think both are not great UX (returning raw vs erroring out). I think a better approach would be to fallback to the default downsampling format (opus , but configurable)

WDYT?

Anything that is not raw works for me. The need is really no raw to avoid users blaming me for their high phone bills due to configuration errors.