Seeking plays song from beginning if transcoding to mp3 is enabled

Issue description:

I am using latest Navidrome 0.55.1 and Symfonium 12.1.0

In the subsonic media provider I have selected “Transcode to MP3” option as what I found out is it only transcodes larger files - flac in my case, but keeps lower bitrate mp3 files untouched. So in the playback transcode options I set my max bitrate to 320. And now the seeking doesn’t work - no matter at what timestamp I want to play a song, it always plays from beginning. Except when transcoding is actually done - so seeking transcoded flac files works. Only non-transcoded mp3 files are failing to seek.

This does not happen if I disable “Transcode to MP3” in the subsonic provider settings. But in this case Symfonium transcodes all music to opus and I don’t want my lower bitrate MP3 to be transcoded again by another lossy format.

Logs sent from phone log upload.

Logs:

Upload description: embers

Additional information:

 

 

Reproduction steps:

 
Go to: settings > Manage media providers > Subsonic
Enable option: Transcode to MP3
Go to: Playback > Decoding & Transcoding
Set option: Wifi maximum bitrate to 320
Play MP3 file with lower bitrate, like 192kbps, it will cause seek failure.
 

Media provider:

Subsonic

Screenshots:

     

This is more or less due to Navidrome not transcoding while Symfonium sending the parameters. There’s not a lot I can do for now with the limited Subsonic transcoding API.

Since it does not transcode I suppose it ignores the timeOffset parameter leading to this result.

@deluan This is kind of an edge case here. Is there some changes in 0.55 to not transcode when then codec is the same and bitrate lower or it was always there ?

Definitely an edge case. The logic has always been the same: If the request for transcoding asks for a lower or same as the file, it won’t do any transcoding and consequently won’t use the timeOffset param.

So definitely need the new API, do you think you can answer on OS about Open API ?

I’ll take a look as soon as I’m done with bug fixes and support for the new version (0.55)

3 Likes

Should I create a separate issue on Navidrome’s github for this?

No need this is a global Subsonic / OpenSubsonic issue here’s, there’s currently no solution to your edge case until there’s a new API defined.