43
submitted 1 day ago* (last edited 1 day ago) by [email protected] to c/[email protected]

I'm ditching streaming services and just going with local music. However all my CDs are converted to either flac or 320kbps mp3 files on my PC and thus far too large for the limited storage I have on my phone.

I was hoping there might be an app that would automatically downconvert to something like 128kbps and then copy over to the Music directory on my phone. A bit like how Calibre can automatically convert eBook files (e.g. mobi to epub) and then send them to your ereader?

top 47 comments
sorted by: hot top new old
[-] [email protected] 1 points 33 minutes ago

I'm in a similar boat to you. I ripped almost all of my CDs to 320kbps mp3s for portability, but then I wanted to put all of them (a substantial number) plus a bunch more (my partner's collection) on a physically tiny USB stick (that I already had) to just leave plugged into our car stereo's spare port. I had to shrink the files somehow to make them all fit, so I used ffmpeg and a little bash file logic to keep the files as mp3s, but reduce the bitrate.

128kbps mp3 is passable for most music, which is why the commercial industry focused on it in the early days. However, if your music has much "dirty" sound in it, like loud drums and cymbals or overdriven electric guitars, 128kbps tends to alias them somewhat and make them sound weird. If you stick to mp3 I'd recommend at least 160kbps, or better, 192kbps. If you can use variable bit rate, that can be even better.

Of course, even 320kbps mp3 isn't going to satisfy audiophiles, but it sounds like you just want to have all your music with you at all times as a better alternative to radio, and your storage space is limited, similar to me.

As regards transcoding, you may run into some aliasing issues if you try to switch from one codec to another without also dropping a considerable amount of detail. But unless I've misunderstood how most lossy audio compression works, taking an mp3 from a higher to a lower bitrate isn't transcoding, and should give you the same result as encoding the original lossless source at the lower bitrate. Psychoacoustic models split a sound source into thousands of tiny component sounds, and keep only the top X "most important" components. If you later reduce that to the top Y most important components by reducing the bitrate (while using the same codec), shouldn't that be the same as just taking the top Y most important components from the original, full group?

[-] [email protected] 1 points 3 hours ago

"Downsizing" an mp3 is what we call transcoding, and it's bad. An mp3 (or the better ogg vorbis) works (basically) by discarding parts of the audio that you won't hear. Doing that will discard parts of the mp3 that already has a bunch of parts discarded and this makes it sound bad.

I do something like what you're looking for, but it's all through a bunch of custom scripts and crap that I made. I buy flac, encode that to ogg (which sounds better than mp3s at lower bitrates), those oggs get synced to my phone, then later I organize those oggs to my collection.

I think you'll have to either accept these large mp3s or start a lossless collection.

[-] [email protected] 0 points 6 hours ago

I would sooner suggest that you find a decent hosting service of free storage or just shove a decent sized microSD into your phone. Lossless music is the way to go. I started doing the mp3 thing quite a long time before most of the world even knew what they were, having been on the pirating scene early in the 90s. So back then I got most of my music in highly compressed mp3. But in the recent years I’ve been slowly replacing all of it with lossless format and it sounds SO MUCH better.

So while I hope you get your answer, should you choose to go that route as you’ve tentatively planned, I’d just suggest you pause a moment and rethink whether it’s the route to go. MicroSD chips are very cheap, and if you have an iPhone so it’s not an option, you could get a cheapie Android phone with a slot and use that for music. You can get a nice small device several years old online for like $15. I even have quite a few I could provide you with one if you wanted.

[-] [email protected] 1 points 10 hours ago

This might be a bit overkill for what you want but you could try using a selfhosted music server like navidrome and streaming to your phone. I use symfonium on on phone which can be configured to request the streamed music to be transcoded to a smaller size for streaming from mobile network or for caching it on your phones storage for offline listening.

Given that symfonium supports a lot of self hosted media providers from which to pull, you could also try sharing your music locally using samba. I'm not sure if the transcoding still works in that case though (it would obviously have to be done on your phone)

[-] [email protected] 4 points 14 hours ago* (last edited 14 hours ago)

It's not really an "App" but tools like ffmpeg or sox or lame can do that no problem. It might take a while to convert your entire collection though ... but depending on the size might just take a night or, few nights.

If you have a ridiculously large collection and do want it "on demand" you could also use e.g. inotify to monitor directories, e.g. ~/Music/ForPhone/ so that any file added to that directory gets converted.

FWIW I'd use a phone with a microSD card as those days one can get a 1To for less than 100€ so probably no conversion needed even for a large collection.

Edit: based on a recent conversation I'd try transcoding capabilities of LMS https://github.com/epoupon/lms cf https://lms-demo.poupon.dev/settings from their demo instance

[-] [email protected] 1 points 9 hours ago

LMS is an awesome app. It's a shame things like Navidrome gets all the attention when LMS is so much better.

[-] [email protected] 13 points 18 hours ago

For lower bitrates, I'd suggest using a different codec than MP3. Opus is really solid, and at 128 kbps it will probably get you quality similar to MP3 at 192 kbps. Or you could go lower, and 96 kbps with Opus will be similar to MP3 at 128 kbps. I don't know an app that will do it automatically, but the CLI tools are really simple to use: you point them at the FLAC and tell it the target bitrate and that's it.

Alternatively, if you have access to a macOS machine, their AAC encoder is really good and likely superior to any MP3 encoder at equivalent bitrates.

[-] [email protected] 10 points 14 hours ago

This, @[email protected].

I'm an audio engineer and can confirm that if you want the best quality audio for the file size, you want Opus. Opus at 128kbps is considered transparent, so it's roughly as good as 320kbps MP3s, but y'know, less than half the size.

[-] [email protected] 2 points 13 hours ago

Hey! Good to know about the 128 kbps threshold.

What's your take on MP3 bitrates? I've read some posts online claiming that 320 kbps is overkill most of, if not all of, the time. They claimed that there is little to no gain going above around 220 kbps. In your experience, is there any truth to this?

[-] [email protected] 2 points 10 hours ago

Generally this is true, but it depends on the encoder used. Back during the huge boom of MP3 popularity in the late 90s and early 00s, it likely did make a difference, so if you're looking at MP3s that were encoded back then I would go for 320kbps every time just to be safe, but modern encoders generally do much better like you said.

These days if I were encoding an MP3 I'd use LAME at -V0 setting, letting it lower the bitrate where it can without sacrificing quality. That said, per this test from 2014 that I found as a source on Wikipedia, a 96kbps VBR Opus file is at least as good if not better than an MP3 with -V 5 as the setting on LAME with approximately a 135kbps bitrate.

[-] [email protected] 2 points 7 hours ago

Thanks a lot!

[-] [email protected] 4 points 15 hours ago

Well, it's not great to take an already compressed audiostream like 320kbps mp3, and then compress it again. Use your FLACs if possible. Then, I'd recommend that you use .ogg - they give better compression (smaller files), but with better sound than mp3...

There's a lot of apps out there, but AFAIK not anyone who does this automatically for you.

[-] [email protected] 22 points 1 day ago
[-] [email protected] 6 points 20 hours ago

You are correct and I don't normally like to listen to anything less than 320kbps. BUT, my phone does not have expandable memory so it's hard limited. And where I listen to most of my music while travelling is in the car using the car's speakers which aren't going to make much difference listening to 128vs 320. Even when streaming music, I'm not going to get 320. I may go up to 192kbps instead of 128 but I doubt it will make much audible difference with shitty car speakers.

[-] [email protected] 14 points 18 hours ago* (last edited 18 hours ago)

If your device supports it, you might want to encode to Opus instead. Opus produces much higher quality files at much smaller file sizes than MP3.

For example, Opus at 128kbps is considered transparent when compared to the source file. You can probably go down to 64-96kbps when its just for playback in your car.

https://wiki.xiph.org/Opus_Recommended_Settings

As for transcoding them, you might want to check out ffmpegfs: https://github.com/nschlia/ffmpegfs

It can create a "virtual" drive based on your source files and automatically transcodes them when you drag & drop files from there onto your device.

[-] [email protected] 5 points 20 hours ago

192 is okayish imo

[-] [email protected] 4 points 17 hours ago

Have you considered self-hosting Plexamp? It supports lossless quality and lets you both steam and download your music at any bitrate you want (even 128 if you really have to, but fuck me that hurts to type.

That's what I do, and before long trips with spotty service I'll download a dozen albums or so in flac so I've got a decent lossless selection for flights/etc

[-] [email protected] 1 points 2 hours ago

I’ll second this. I’ve got tons of FLACs. I let PlexAmp do the transcoding in the background.

[-] [email protected] 5 points 20 hours ago* (last edited 20 hours ago)

Handbreak could be used for that and automatically run for set directories if i remember correctly.

[-] [email protected] 4 points 15 hours ago
[-] [email protected] 3 points 20 hours ago

Thank you! I'll take a look :)

[-] [email protected] 5 points 21 hours ago

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

[-] [email protected] 1 points 7 hours ago

Tempo is a good open-source player for Android that works well with Navidrome.

On iOS, Arpeggi is good, but not open source (I think). It's still under development, but I don't think it's missing any major features at this point.

[-] [email protected] 12 points 1 day ago

Not sure if it's exactly what you're looking for - but subsonic/airsonic/etc. can do on-the-fly conversions when downloading to mobile devices. There are several mobile apps available that will cache files locally as well.

[-] [email protected] 8 points 1 day ago

Can you stream from your pc? I set up Jellyfin and Tailscale, and all my music (and movies and tv shows) are on my computer, accessible from anywhere.

[-] [email protected] 5 points 20 hours ago

I don't want to be reliant on an internet connection to play music. Hence, why I prefer everything to be local on my phone. I also don't want to open our home server up to the outside world.

[-] [email protected] 2 points 15 hours ago

Both fair concerns. Plus then your server must always be on.

[-] [email protected] 2 points 22 hours ago

What about security? How easy is it to crack?

[-] [email protected] 1 points 20 hours ago

It's a VPN. It's standard ChaCha20/AES 128. Good enough for private entities but not FIPS certified

[-] [email protected] 1 points 22 hours ago
[-] [email protected] 1 points 21 hours ago

Your security, is the connection to the outside world safe?

[-] [email protected] 1 points 14 hours ago

This is a valid question, but it's hard to answer because it depends on the security of your own network. Tailscale creates a secure tunnel directly into your home network, but if your home network is compromised then it's not secure.

Could Tailscale be compromised? I think it would be difficult but not impossible. It's safe enough for personal use, certainly, but I wouldn't use it to protect state secrets.

And if you have it on your phone, and someone gets access to your phone, then they can access your home network. How secure is your phone? Do you use biometrics or a password keeper? Do you leave your laptop unlocked?

Security is a mixed topic, and it's impossible to pull one thread from the sweater without unraveling the whole thing. Sometimes the illusion of security is as effective as actually being secure, and sometimes it isn't at all.

[-] [email protected] 2 points 20 hours ago

Tailscale is a private VPN tunnel into your home network basically. There would be nothing that is accessible by the public.

[-] [email protected] 1 points 19 hours ago* (last edited 19 hours ago)

I am using public vps as entry point with reverse tunnel to home server with SSL

[-] [email protected] 1 points 18 hours ago

DbPowerAmp has a bulk converter tool. It's proprietary payware but cracked versions are available.

[-] [email protected] 3 points 1 day ago

You can use Plex to stream music from your own server. The mobile app is called Plexamp, and it’s pretty great.

[-] [email protected] 4 points 20 hours ago

I don't want to stream at all because I don't want to be reliant on having an internet connection :)

[-] [email protected] 1 points 18 hours ago

I was gonna say that Plexamp allows for local downloads from your server onto your device, but if you don’t wanna ever use an Internet connection at all, I guess that’s different.

[-] [email protected] 4 points 1 day ago

I don't know about automatic, but I also have music locally on my phone after moving away from streaming services.

I use fre:ac to convert from FLAC to MP3, and then just save it in a separate folder. Then when I'm done I move the folder to the phone and delete it from the computer so I just have FLAC on my computer.

Not automatic, but that's how I usually do it.

[-] [email protected] 2 points 20 hours ago

I was considering doing that sort of thing if I couldn't find anything automatic. It's just annoying as I buy new music and have to convert along the way, especially as I have memory impairment and can forget to clean up afterwards.

[-] [email protected] 3 points 1 day ago* (last edited 1 day ago)

Not automatic (I think) and a bit clunky but the Strawberry music player does have a transcode feature so you could select music files and transcode them a certain way output to another folder. It's not something I ever do but I did a quick test to a USB drive and it seems to work okay. It's an option if you opt to use a gui to click through.

OTOH if you're happy using the terminal and/or scripting then ffmpeg may be a better bet.

PS - Strawberry does have a panel where it lists "Devices" and maybe your phone could show up there and the transcoding would work a bit more automatically, wasn't able to test that here.

[-] [email protected] 1 points 20 hours ago

I'll give that a go, thanks :)

[-] [email protected] 2 points 1 day ago

Might not be the most convenient option depending on your personal use-case, but have you considered a dedicated audio device? I personally got a refurbished LG V30 because I came across a YT vid while looking for cheap options for having a dedicated "mp3" player to keep archived/favorite episode of podcasts, audiobooks, and music. Seems there is a decent fanbase of folks that love the 3.5mm DAC that phone has (of course has Bluetooth too). It also has microSD slot. Got a 512GB card (can use up to 2TB which I might do at some point). Most of the music I have on it is flac where possible. I keep it offline and just transfer files via USB, but could use wifi to sync with PC if I wanted to at some point. Shit lasts a pretty long time with wifi/bluetooth off only using the headphone jack (helps that the battery was replaced by the refurb).

There are also lots of cheaper Android-based players (I got one before I came across the vid on the V30) but can have some amount of malware and no easy access to their firmware or communities that can advise custom ROMs to safely flash something clean and/or newer. When I got my no-name device I just side-loaded apks to avoid giving access to my Google account (though I plan to keep my V30 offline after I got the last updates for the OS and LG apps). I just wanted to have something that I only use for local audio and just keep it in my car or backpack and have access to the three apps I like (Musicolet for music, Podcast Addict for podcasts, and Smart AudioBook Player for my audiobooks).

[-] [email protected] 1 points 1 day ago
[-] [email protected] 1 points 20 hours ago

Thanks, I'll have a look into it! :)

[-] [email protected] -2 points 20 hours ago

Just use a ~500GB SD card, but it costs around 40€.

[-] [email protected] 1 points 20 hours ago

My phone does not have expandable memory and storage is expensive in my country anyway.

this post was submitted on 04 Aug 2025
43 points (97.8% liked)

Linux

56972 readers
570 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS