Incorrect values for song length (duration) in Mp3tag after ffmpeg FLAC to MP3 conversion

831 views Asked by At

The problem

As per this post, I use the following command to convert a flac file to mp3 while keeping all metadata:

ffmpeg -i input.flac -ab 320k -map_metadata 0 -id3v2_version 3 output.mp3

When inspecting the converted mp3 file by right-clicking it, going to properties and then details, everything looks in order. The value for "Length" is correct.

enter image description here

When inspecting the converted mp3 file with Mp3tag, the value for "Length" is different. From my testing, the "Length" value is consistently about 28% of what it is supposed to be.

enter image description here

Normally, this isn't an issue. Most music players I use, read the correct length value, same as Windows. However, I've recently discovered that Spotify Mobile for some reason ignores the length value that can be seen in the Windows panel and uses the one that can be seen in Mp3tag.

I want to figure out what command I should use so that after the flac file has been converted to mp3, Mp3tag shows the correct length, and there by, Spotify Mobile reads the correct length as well.

What I have tried

1. After converting the file to Mp3, I've tried reencoding the mp3 file into a... mp3 file using the following command:

ffmpeg -i original.mp3 -c:v copy -c:a mp3 -vn -ar 44100 -ac 2 -b:a 320k copy.mp3

enter image description here

As can be seen in the image above, this fixes the issue and the length is showing correctly in Mp3tag and in Spotify Mobile.

Issues with this: Reencoding reduces quality and I don't know how to combine the previous flac conversion command and this one into one line.

2. I tried https://cloudconvert.com/flac-to-mp3 and it worked. The length is displayed correctly in Mp3tag. (What commands did they use on the server???)

enter image description here

Issues with this: I don't want to rely on a cloud service for conversion, I have a lot of files to convert and I'd prefer it to be done locally.

Some demo files

Here is a folder with a flac file, a bad mp3 file (wrong length) and a good mp3 file. It looks like if you preview the music in google drive, it also plays the wrong length for the bad mp3 (39s not 2m19s), while vlc, groove player, spotify (desktop not mobile) all play the correct full length (2m19s) for the bad mp3 file.

Folder: here's the link

1

There are 1 answers

0
Clueless On

The problem is due to an outdated version of FFmpeg (FFmpeg version git-2020-05-23-26b4509). Update to the latest version.