Lossless conversion of MPEG ADTS MP3 to normal MP3

mp3

I have many MP3 audio files which are ADTS encoded. Unfortunately, my car radio doesn't support ADTS, so I need to convert them to normal MP3 files without a transport stream.

There are many people out there who asked the same question, but the only answers I found was converting to wav and then use lameenc to convert it back to MP3

I'm sure there is a way to convert these files without decoding/reencoding them.

I already experimented with ffmpeg/avconv, but the parameter -acodec copy doesn't seem to output anything different than ADTS.

I also played around with GStreamer. Funnily, I think it's the module aacparse which at least understands the format, but it's not a demuxer.

Which tool can I use for this?

$ file badfile.mp3 goodfile.mp3
badfile.mp3:  MPEG ADTS, layer III, v2,  64 kbps, 22.05 kHz, JntStereo
goodfile.mp3: Audio file with ID3 version 2.4.0

An example file can be found here (Overview)

Update:
I'm still testing, but it seems that 1) Also lame produces ADTS files and 2) ADTS is not really the problem for my car radio, it must be something different. I'm testing now with different profiles and bitrates, VBR and CBR. But it is still helpful if someone knows something more about ADTS.

Best Answer

There is no way to convert MPEG ADTS to MP3 without decoding and reencoding them. They are fundamentally different formats/encodings. Any conversion utility you use that claims to do a direct conversion is in fact doing that behind the scenes--decoding to some lossless format and reencoding to some version of MP3. With that in mind, I highly recommend sox for audio format conversions. It really isn't exaggerating when it refers to itself as the "Swiss Army Knife of Audio Manipulation." Syntax is simple: sox infile outfile, but the available options put ffmpeg to shame.

Related Question