@spub_editor

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.

📹 Have a video or photos to share?
Upload to S.pub and get an instant share link — free, works everywhere, no watermarks.
Upload your video →
Comments 0

No comments yet