FFmpeg can take the audio out of an MP4 (a lecture recording, a podcast video, a music video, a screen capture) and save it as an MP3. MP3 plays on almost every phone, car stereo and audio app. To convert MP4 to MP3, you choose VBR or CBR and a bitrate, and you can cut out only the part you want.

1. The One Command

This command takes the audio from the MP4 and encodes it as a high-quality MP3:

ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3
  • -vn … no video. FFmpeg drops the video stream and processes only the audio
  • -c:a libmp3lame … encode with LAME, the standard high-quality MP3 encoder
  • -q:a 2 … VBR (variable bitrate) quality level 2: about 190 kbps on average, excellent quality

This is a good default for almost everyone.

Prefer a fixed bitrate?

ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k output.mp3

-b:a 192k sets a constant bitrate (CBR) of 192 kbps. Use it when a player or service requires a predictable bitrate.

2. VBR vs. CBR — Which Should You Use?

You can control MP3 quality in two ways:

Mode Option What it does Best for
VBR (variable) -q:a 0 to 9 Uses more bits where the audio is complex Best quality per MB; general use
CBR (constant) -b:a 128k, 192k, 320k Same bitrate throughout Strict compatibility, streaming, predictable size

Use VBR (-q:a) by default. It gives better quality at a smaller average file size, because it puts the bits where the audio needs them. Use CBR only when a later step, such as a player or upload service, requires a constant bitrate.

On the VBR scale, a lower number means higher quality:

-q:a value Approx. average bitrate Quality
0 ~245 kbps Highest VBR quality
2 ~190 kbps Excellent (recommended)
4 ~165 kbps Very good
6 ~115 kbps Good, smaller files

3. Bitrate / Quality Cheat Sheet

For CBR (-b:a), choose by content:

Bitrate Quality Good for
320k Maximum MP3 quality Music you’ll keep
192k Most listeners hear no difference General music & video audio
128k Good Podcasts, casual music
96k Acceptable Voice-only, audiobooks
64k Low Long speech recordings, tight storage

For speech (lectures, podcasts), 96k–128k is plenty. For music, 192k or VBR -q:a 2 is the best balance, and 320k is the maximum.

4. Why -vn Matters

An MP3 file cannot hold a video track, so FFmpeg leaves the MP4’s video out even without -vn. If the MP4 has an embedded cover image, FFmpeg adds only that image, converted to PNG. -vn (“no video”) tells FFmpeg to ignore all video, including a cover image, and process only the audio. Include it when you want an MP3 with audio only.

If the MP4 has more than one audio track (for example, different languages), pick the one you want by its index:

ffmpeg -i input.mp4 -vn -map 0:a:1 -c:a libmp3lame -q:a 2 output.mp3

-map 0:a:1 picks the second audio track, because numbering starts at 0. Change the last number to pick a different track.

5. Trimming — Extract Just a Section

To take only part of the audio (for example, a 90-second clip starting at 1:30):

ffmpeg -ss 00:01:30 -t 00:01:30 -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3
  • -ss 00:01:30 … start at 1 minute 30 seconds
  • -t 00:01:30 … take 90 seconds of audio from that point

To give an end time instead of a length, use -to:

ffmpeg -ss 00:01:30 -to 00:03:00 -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3

This extracts the audio between 1:30 and 3:00.

6. Mono Output and Sample Rate

For voice recordings, mono output and VBR -q:a 5 make the file smaller, and speech loses nothing you can hear:

ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 5 -ac 1 -ar 44100 output.mp3
  • -ac 1 … mix down to mono (good for lectures and voice memos)
  • -ar 44100 … set the sample rate to 44.1 kHz (the most common rate for MP3)

For music, keep stereo by leaving out -ac 1. Without -ac, the MP3 keeps the source’s channels, and 5.1 audio is mixed down to stereo. For normal listening, there is no reason to go below 44.1 kHz.

7. Troubleshooting

Error 1: Unknown encoder 'libmp3lame'

Cause: Your FFmpeg build was compiled without LAME. Fix: Install a full build (on Windows, for example the gyan.dev full build linked from ffmpeg.org’s download page; most Linux packages also include LAME). Write -c:a libmp3lame explicitly. -c:a mp3 is only an alias for the MP3 encoder your build has (libmp3lame on a typical build). It is not a separate, lower-quality encoder.

Error 2: The output is silent

Cause: -map picked a silent track, such as an empty extra track, or the audio in the MP4 is itself silent. A track that does not exist, or an MP4 with no audio, does not give a silent file: FFmpeg stops with an error such as matches no streams or Output file does not contain any stream. Fix: Run ffprobe input.mp4 to list the audio streams. Then remove or correct the -map option.

Error 3: File is much larger than expected

Cause: You used a high CBR bitrate such as 320k. Fix: Switch to VBR -q:a 2, or lower the CBR bitrate to 192k.

Error 4: Player shows no title/artist

Cause: MP4 tags don’t always map cleanly to MP3 ID3 tags. Fix: Set the tags yourself, for example -metadata title="My Track" -metadata artist="Name".

FAQ

Q1. Does converting MP4 audio to MP3 reduce quality? A. Yes, slightly. The MP4 audio (usually AAC) is decoded and encoded again as MP3, which is lossy. At -q:a 2 or 192k and above, most listeners cannot hear the difference.

Q2. Should I use VBR or CBR? A. VBR (-q:a 2) gives the best quality for the size. Use CBR (-b:a) only when a player or upload service requires a fixed bitrate.

Q3. What’s the best bitrate for a podcast? A. 96k–128k CBR, or VBR -q:a 5, is plenty for speech. With VBR, mono (-ac 1) makes the file smaller still. With CBR, the bitrate alone sets the size, so only a lower bitrate makes it smaller.

Q4. Can I keep the original AAC audio instead of MP3? A. Yes. If you do not need MP3, extract to M4A with -c:a copy. The audio is not re-encoded, so there is no quality loss and it is almost instant. MP3 plays on more devices, though.

Q5. How do I extract audio from only part of the video? A. Use -ss for the start, and -t for the length or -to for the end time. See Section 5.

Q6. Should I specify libmp3lame or just mp3? A. Specify libmp3lame. LAME is the most mature, highest-quality MP3 encoder available, and naming it makes your choice clear. -c:a mp3 is only an alias for whichever MP3 encoder your build provides (libmp3lame on a normal build), so it is not a separate, lower-quality encoder.