FFmpeg recipe

FFmpeg: Extract Audio as MP3 from Any Video

When you need MP3 specifically (for podcasts, voice memos, ringtones), re-encode the source audio. 192 kbps is sonically transparent for music; 128 kbps for voice.

Command

ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k -y output.mp3
Prefer no terminal?
Use the Video to MP3 in your browser
Open Video to MP3 →

What each flag does

-iInput file. Can be a video, audio, or image. Repeat for multiple inputs.
-vnStrip video (no video in output) — useful for audio-only extraction.
-b:aAudio bitrate, e.g. 192k.
-c:a libmp3lameMP3 encoder. Pin this rather than letting ffmpeg pick.

Notes & gotchas

  • For voice-only content, drop to 128k or even 96k to save space.
  • Add -ar 44100 -ac 2 to force 44.1 kHz stereo if the source has unusual sample rate / channel layout.

Check it worked

ffprobe -v error -show_entries stream=codec_name,bit_rate -of csv=p=0 output.mp3

mp3, with a bitrate near what you requested.

What to change

192 kbps is plenty for speechPodcasts, lectures and interviews are indistinguishable from 320 at two thirds the size. Music is where the higher rate earns its space.
Add -ac 1 for voiceMono halves the size and sounds identical for a single speaker.
This is a second lossy encodeThe video's audio was already compressed. If you only need the audio unchanged, copy it out instead of re-encoding to MP3.

If it fails

Unknown encoder libmp3lame.

Why: Your FFmpeg build was compiled without LAME, which happens with minimal distribution packages.

Fix: Install a full build, or use -c:a mp3 to fall back to the built-in encoder, which is lower quality at the same bitrate.

The MP3 is quieter than the video was.

Why: Nothing was changed; the video player was applying its own normalisation on playback.

Fix: Add a loudness pass with -af loudnorm if you want a consistent level across files.

Related recipes