Transcoding Issues with maximum bitrate settings

Issue description:

I have Navidrome running version 0.60.2 with a transcode configured for MP3s. I have the transcode applied to my symfonium client under the “players” menu.

Symfonium only seems to request a transcode when my maximum bitrate is set to “original” and requests raw files when the maximum bitrate is set to “320”. I’m confident that the server is configured properly, as this configuration works perfectly with play:Sub installed on two different Apple devices. Original, or Maximum requests the raw file, and changing the bitrate changes the requested MP3 that the server transcodes to. This is all reflected in the navidrome log.

I will include the server logs from my most recent test in the additional info box, during which I collected a log dump in symfonium with debug mode that I have uploaded.

I have changes so many settings back and forth in symfonium with no success in fixing this. Any suggestions would be appreciated.

I also submitted a reddit post about this where originally I was having trouble getting transcodes to work at all, and then discovered the issue I have mentioned here. I will link to it below.

https://www.reddit.com/r/Symfonium/comments/1r5wc8h/limiting_bitrate_isnt_triggering_a_transcode_on/

Logs:

Upload description: Not_Revan

Additional information:

 

 

Reproduction steps:

 
Configure transcode on Navidrome eg:
ffmpeg -i %s -ss %t -map 0:a:0 -b:a %bk -v 0 -threads 0 -f mp3 -

Apply the transcode to symfonium player(s) in the “players” menu.

Set maximum bitrate in symfonium to “original”.

Start playback. Symfonium will report playing an MP3, and Navidrome will report that it’s transcoding to MP3.

Stop playback. Go to advanced > Clear playback cache.

Start symfonium and change maximum bitrate to 320 kbps.

Play a song, symfonium will report playing the original file, and navidrome logs will report streaming the raw file with no transcoding.
 

Media provider:

Subsonic

Screenshots:

 

    

You are not supposed to force configuration server side ever as you lose control over what happens.

Remove all server side, configure Symfonium with what you want and it will do exactly that.

If I turn off server side, then regardless of the max bitrate setting I get streamed the whole file every time. In this configuration is Symfonium supposed to request the fill file and then transcode it on device?

No it applies the settings you use. Don’t change in download for playback.

Show your settings

My decoding and transcoding settings. Are there any other settings I should show you?

In advanced settings the metered wifi as mobile and the when you are sure there’s nothing forced on server side provide logs.

Nothing forced from the server anymore. I set that option under advanced and uploaded another log collection with my username as the description.

Now it doesn’t transcode on wifi which is good, but it also does not transcode on data, which is my goal.

In the logs it properly switch as expected what makes you think it downloads the full one ?

You may want to clear media info cache in advanced settings to fix invalid data due to forcing server side stuff and you have enabled playback cache so files can also be played from cache you can clear it there too.

If the log dump shows that it’s getting 320 instead of the full file, then I guess my only issue is the lack of feedback that I’m getting.

I cleared the media info cache and playback cache and played another song on cell data, and it tells me it’s getting FLAC. My server logs also say it’s streaming the raw file, but that may have been a red herring this whole time if I shouldn’t be worried about server side transcoding.

What tells you ?

In the logs

2026-02-18 07:27:56.341 Verbose SwitchingDataSource  Switching[true]: https://xxx:443/rest/stream.view?id=nuEq7ZKSNmETi2Hxjulko4&u=REDACTED&t=REDACTED&s=REDACTED&v=1.13.0&c=Symfonium&f=json -> https://xxx/rest/stream.view?id=nuEq7ZKSNmETi2Hxjulko4&u=REDACTED&t=REDACTED&s=REDACTED&v=1.13.0&c=Symfonium&f=json&maxBitRate=320&format=opus

The app properly request 320 and opus.

It’s the media info on the playback screen that’s throwing me off in addition to the Navidrome server logs.

time="2026-02-18T07:59:11-05:00" level=info msg="Streaming file" artist="Esperanza Spalding" bitRate=0 cached=false format=raw originalBitRate=804 originalFormat=flac requestId=navidrome/2W6IlnebxM-012207 title="Love in Time" transcoding=false user=Scott

If you do 3 dots and details then yes it will check the data of the actual file not what is currently playing and there will be a line in the server side about it.

The now playing should not according to logs.

Stop playback clear media info cache, playback cache then kill the app and restart just in case then play 1 media on mobile and provide logs of it.

Okay done. Cleared caches and played one song on mobile. Uploaded the log with my username as the description.

Edit. Sorry I read you message too fast. Let me do all that again, I didn’t force close and restart.

Now done. Cleared caches, force closed the app. Restarted phone. Then played one song on data, it reported playing the flac file. I uploaded the logs. Disc: Not_Revan New

Ok so on Symfonium side everything is ok but there’s something wrong server side or proxy side.

2026-02-18 08:24:45.644 Verbose TranscoderManager  FFProbe [523ms]: {"streams":[{"index":0,"codec_name":"flac","codec_long_name":"unknown","codec_type":"audio","codec_tag_string":"[0][0][0][0]","codec_tag":"0x0000","sample_fmt":"s16","sample_rate":"44100","channels":2,"channel_layout":"stereo","bits_per_sample":0,"initial_padding":0,"r_frame_rate":"0\/0","avg_frame_rate":"0\/0","time_base":"1\/44100","start_pts":0,"start_time":"0.000000","duration_ts":10807440,"duration":"245.066667","bits_per_raw_sample":"16","extradata_size":34,"disposition":{"default":0,"dub":0,"original":0,"comment":0,"lyrics":0,"karaoke":0,"forced":0,"hearing_impaired":0,"visual_impaired":0,"clean_effects":0,"attached_pic":0,"timed_thumbnails":0,"non_diegetic":0,"captions":0,"descriptions":0,"metadata":0,"dependent":0,"still_image":0}},{"index":1,"codec_name":"mjpeg","codec_long_name":"unknown","profile":"192","codec_type":"video","codec_tag_string":"[0][0][0][0]","codec_tag":"0x0000","width":500,"height":500,"coded_width":500,"coded_height":500,"closed_captions":0,"film_grain":0,"has_b_frames":0,"sample_aspect_ratio":"1:1","display_aspect_ratio":"1:1","pix_fmt":"yuvj420p","level":-99,"color_range":"pc","color_space":"bt470bg","chroma_location":"center","refs":1,"r_frame_rate":"90000\/1","avg_frame_rate":"0\/0","time_base":"1\/90000","start_pts":0,"start_time":"0.000000","duration_ts":22056000,"duration":"245.066667","bits_per_raw_sample":"8","disposition":{"default":0,"dub":0,"original":0,"comment":0,"lyrics":0,"karaoke":0,"forced":0,"hearing_impaired":0,"visual_impaired":0,"clean_effects":0,"attached_pic":1,"timed_thumbnails":0,"non_diegetic":0,"captions":0,"descriptions":0,"metadata":0,"dependent":0,"still_image":0},"tags":{"comment":"Cover (front)"}}],"chapters":[],"format":{"filename":"https:\/\/xxx:443\/rest\/stream.view?id=eab1WnAebWsgiemZPog2GB&u=REDACTED&t=REDACTED&s=REDACTED&v=1.13.0&c=Symfonium&f=json&maxBitRate=320&format=opus","nb_streams":2,"nb_programs":0,"format_name":"flac","start_time":"0.000000","duration":"245.066667","size":"21040484","bit_rate":"686849","probe_score":100,"tags":{"ARTIST":"Old & In The Way","TITLE":"Catfish John","ALBUM":"That High Lonesome Sound","DATE":"1973","GENRE":"Bluegrass","track":"04","TRACKTOTAL":"14","disc":"1","DISCTOTAL":"1"}}} [https://1/rest/stream.view?id=eab1WnAebWsgiemZPog2GB&u=REDACTED&t=REDACTED&s=REDACTED&v=1.13.0&c=Symfonium&f=json&maxBitRate=320&format=opus]

Symfonium request opus 320 and the server returns FLAC. @deluan Is there some settings in Navidrome that could lead to that ?

Gotcha. In an attempt to harden my server as best I could, I have requests handled by a remote nginx proxy which forwards to nginx over port 443 running on the Navidrome server (done this way to ensure SSL is used across the public internet), which finally forwards to localhost:4533.

I can post the nginx configs with redaction’s of my IP addresses and such if that would help.

As a quick test to get more data, I connected directly to my server via a lan connection over wifi. Cleared playback and media info cache, set maximum bitrate in encode and transcode for wifi to 320 and it’s still serving me flacs.

That would rule out the offsite proxy. Leaving only the server and the nginx proxy running directly on the server.

I don’t do proxy / server side support you have the url that is called and can check what it returns.

Oh no I didn’t mean to imply that you do. I understand you’re the Symfonium developer, not necessarily a proxy/navidrome expert.

Since you @’d deluan I wanted to provide additional information.