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.mp3Prefer no terminal?
Use the Video to MP3 in your browser
What each flag does
| -i | Input file. Can be a video, audio, or image. Repeat for multiple inputs. |
|---|---|
| -vn | Strip video (no video in output) — useful for audio-only extraction. |
| -b:a | Audio bitrate, e.g. 192k. |
| -c:a libmp3lame | MP3 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.mp3mp3, with a bitrate near what you requested.
What to change
| 192 kbps is plenty for speech | Podcasts, 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 voice | Mono halves the size and sounds identical for a single speaker. |
| This is a second lossy encode | The 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.