

The biggest problem of ubuntu is snaps.
However, if you’re into audio, you can install linux mint, which is ubuntu-based, and then install the ubuntu-studio-pipewire-something (sorry, can’t remember how the package is actually called), which FIXES pipewire to work properly with high end audio apps. For example, on my vanilla Linux Mint, Bitwig Studio would not make a peep! After installing that package, it produces sound. With that fixed, you can do everything on Mint.
Navidrome does that. You have to setup a PC, or a raspberry Pi with navidrome, and then use a client like Symfonium (costs $5, not open source, but it’s the best subsonic client out there), and tell it to automatically downconvert music when played via the phone. I have a Raspberry Pi 3B+, with just 1 GB of RAM, running navidrome. DietPi + navidrome (which is installable directly via dietpi’s software selection), together they take just 80-120 MB of RAM!
I had Jellyfin before that, and Emby, and they were dogs. 1 GB of RAM was not enough for them, they’d swap with an additional 200-300 MB of RAM. And they were slow with large music libraries too. Navidrome/Subsonic don’t have such issues. Big music libraries are handled fast with their db/engine.
If you prefer to not use a server, there are encoding shell scripts that do batch-encoding: https://github.com/caleis/flac2mp3/blob/master/flac2mp3.sh