A lecture you want to listen to on the commute. A concert clip whose audio deserves its own playlist. A voice memo trapped inside a screen recording. Extracting audio from video takes seconds once you know the one distinction that matters: re-encoding or not.
The one distinction: extract vs convert
Videos already contain an audio stream — usually AAC or Opus. Extraction can:
1. **Copy the original stream** (instant, zero quality loss, keeps the original format) 2. **Convert it** to MP3 or another format (slower, re-compresses, universally playable)
Rule: if the original format works for you, copy. Convert to MP3 only when the destination demands it (older car stereos, some editors).
Method 1: FFmpeg (the professional way)
**Copy without re-encoding** — try this first:
ffmpeg -i input.mp4 -vn -c:a copy output.m4a
- `-vn` drops the video track - `-c:a copy` keeps audio bytes exactly as they are - `.m4a` matches what AAC streams naturally live in (use `.ogg` for Opus, `.aac` for raw AAC)
If FFmpeg complains about the container, fall back to conversion:
ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3
`-q:a 2` is high-quality VBR MP3 (~190-250 kbps) — transparent for music.
Method 2: VLC (no command line)
Media → Convert/Save → add your video → Convert. In profile settings, deselect video, choose Audio - MP3 (or FLAC for lossless). Slower than FFmpeg and always re-encodes, but it's a familiar interface and handles odd formats well.
Method 3: Online tools
Search "video to mp3" and you'll find dozens. Fine for a one-off public clip; think twice before uploading private recordings — you're handing the file (with anything in it, including metadata — see our metadata guide) to a third party. For anything sensitive, local tools win.
Getting this right
Quality reality check
Converting a 128 kbps AAC track to 320 kbps MP3 does NOT restore quality — it just makes a big file of already-lossy audio. Extraction can never exceed the source's original quality. Copy the stream when possible; when converting, match or slightly exceed the source bitrate, no more.
Extracting a specific time range
Only want minutes 3:10 to 5:40? Add `-ss` and `-to` before the input:
ffmpeg -ss 00:03:10 -to 00:05:40 -i input.mp4 -vn -c:a copy out.m4a
With `-c:a copy`, cuts land on audio frame boundaries — accurate to milliseconds.
Batch extraction
A folder of clips:
for f in *.mp4; do ffmpeg -i "$f" -vn -c:a copy "${f%.mp4}.m4a"; done
Hundreds of files in the time it takes to copy them.
What about video with no audio track?
If FFmpeg shows no audio stream, there's nothing to extract — silence isn't stored as a track. You'd be recording (not extracting): play the video and capture system audio with Audacity or OBS instead.
The takeaway
`ffmpeg -i in.mp4 -vn -c:a copy out.m4a` — instant, lossless, done. Convert to MP3 only for incompatible destinations, at matched quality. Your ear can't tell the difference between copy and convert at good settings; your patience will notice the difference in speed.
No comments yet