why-are-my-mp3-files-the-same-size-even-when-i-change-the-bitrate-with-ffmpeg-00

If you are new to the process of converting audio files, then many of the details and how they work can be a bit confusing when you get unexpected results. So what do you do to fix the problem? Today’s SuperUser Q&A post has the answer to a confused reader’s question.

Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.

Photo courtesy of Warein (Flickr).

The Question

SuperUser reader Arlen Beiler wants to know why using different bitrate settings when converting an audio stream produced files that were all the same exact size:

I converted an audio stream into three different bitrate settings using what is essentially the same format. They ended up being exactly the same size. Why is this?

  • ffmpeg -i “Likoonl-Q1-All.mp4” -c:v copy -c:a libmp3lame -q:a 1 -b:a 192k “Q1-All-192k.mp4”
  • ffmpeg -i “Likoonl-Q1-All.mp4” -c:v copy -c:a libmp3lame -q:a 1 -b:a 160k “Q1-All-160k.mp4”
  • ffmpeg -i “Likoonl-Q1-All.mp4” -c:v copy -c:a libmp3lame -q:a 1 -b:a 128k “Q1-All-128k.mp4”

How did using different bitrate settings produce files of the same exact size?

The Answer

SuperUser contributor slhck has the answer for us:

Because you are setting -q:a (which is LAME’s VBR setting). When you use -q:a, the CBR setting -b:a will have no effect. If you look into the MP3 encoding guide from the FFmpeg Wiki, you will find the possible values for -q:a with their corresponding average bitrate.

For the sake of completeness, here is the relevant part of libmp3lame.c (qscale is the long name of q):

why-are-my-mp3-files-the-same-size-even-when-i-change-the-bitrate-with-ffmpeg-01


Have something to add to the explanation? Sound off in the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.