How to extract mp3 audio from mp4 video — no upload required
- Step 1Open the Video to MP3 extractor — Go to Video → MP3. The whole engine ships in the page — FFmpeg-WASM downloads once, then runs offline. No sign-in is needed for files inside the free 50 MB / 30-minute limit.
- Step 2Drop your MP4 onto the dropzone — Drag the
.mp4(or.m4v,.mov) onto the drop area, or click to browse. The file is read locally; you'll see its detected duration, sample rate, and channel count appear once FFmpeg probes it. No upload happens at this step or any other. - Step 3Pick the MP3 bitrate — Use the Bitrate dropdown — the only control this tool exposes. Options are 320 kbps (best), 256 kbps, 192 kbps (default), 128 kbps (podcast), and 64 kbps (voice). There is no VBR slider, no sample-rate or channel selector here — the source's sample rate and channel layout pass through unchanged.
- Step 4Run the extraction — Click the action button. FFmpeg demuxes the audio, decodes the AAC, and encodes MP3 with
libmp3lameat your chosen-b:a. A long 4K capture takes longer because WASM is single-threaded for the audio engine — progress is shown as FFmpeg reports it. - Step 5Verify duration and tags — The result panel shows output size and the engine used. Confirm the MP3 duration matches the source; if the source MP4 carried a title/artist/artwork, those are now in the MP3's ID3v2.3 header (visible in any tag editor or your file browser's details pane).
- Step 6Download — or chain to another tool — Save the MP3. If it's a voice recording that needs cleanup, send it to the AI noise reducer or loudness normalizer; if you only wanted a clip, follow with the audio trimmer.
Bitrate options and what they're for
Every option in the Video → MP3 bitrate dropdown, the FFmpeg flag it maps to, and the approximate file size for one hour of stereo MP3. Default is 192 kbps. All are constant bitrate (CBR) via libmp3lame.
| Dropdown label | FFmpeg flag | ~Size / hour (stereo) | Best for |
|---|---|---|---|
| 320 kbps · best | -b:a 320k | ~144 MB | Music videos, concert MP4s — minimises the single AAC→MP3 generation loss |
| 256 kbps | -b:a 256k | ~115 MB | High-quality music where 320k feels wasteful; transparent for most listeners |
| 192 kbps · default | -b:a 192k | ~86 MB | General use — the safe default for mixed speech-and-music MP4s |
| 128 kbps · podcast | -b:a 128k | ~58 MB | Talks, tutorials, screen-capture narration where size matters |
| 64 kbps · voice | -b:a 64k | ~29 MB | Pure mono speech / dictation; small enough to email |
What is preserved, changed, or dropped
An MP4→MP3 extract is a re-encode, not a stream copy. This is exactly what FFmpeg's command line does to each part of the file.
| Item | Behaviour | Why |
|---|---|---|
| Video track (H.264 / H.265) | Dropped | The output is MP3 — -map 0:a selects only the audio stream |
| AAC audio data | Decoded then re-encoded to MP3 | MP3 needs libmp3lame; AAC can't be stream-copied into an MP3 container |
| Sample rate / channels | Passed through unchanged | This tool sets no -ar/-ac — the source layout (e.g. 48 kHz stereo) is kept |
| Title / artist / album tags | Carried over | -map_metadata 0 copies container metadata to the MP3 ID3v2.3 header |
| Embedded cover art / thumbnail | Carried over if present | -map 0:v? -c:v copy -disposition:v:0 attached_pic re-attaches a still image as MP3 artwork |
| Multiple audio tracks | First audio track used | -map 0:a maps the default audio stream; pick a specific track with the MKV→MP3 path workflow if you have dubs |
Cookbook
Concrete MP4-to-MP3 jobs with the bitrate choice and the command FFmpeg runs under the hood. Output filenames keep the source base name with a new extension.
Phone-recorded lecture MP4 to a small MP3
A 45-minute lecture filmed on a phone arrives as a 720p MP4 with AAC stereo audio. You only want the audio for the commute, and size matters. 128 kbps mono-or-stereo is plenty for speech.
Source: lecture_2026-06-12.mp4 (720p, AAC 48kHz stereo, 412 MB) Bitrate dropdown: 128 kbps · podcast FFmpeg (in-browser): -i lecture_2026-06-12.mp4 -map_metadata 0 -map 0:a -map 0:v? \ -c:v copy -disposition:v:0 attached_pic -id3v2_version 3 \ -c:a libmp3lame -b:a 128k lecture_2026-06-12.mp3 Output: lecture_2026-06-12.mp3 (~41 MB, 48kHz, 44:51) Note: 412 MB exceeds the Free 50 MB cap — this needs Pro (200 MB) or Pro+Media for the full file.
Music-video MP4 to 320 kbps with artwork intact
You have a music video as an MP4 that already carries a title, artist, and a cover thumbnail. You want the best-quality MP3 for your library, with the artwork showing up in your player.
Source: artist - track (official video).mp4 (AAC 48kHz stereo + cover) Bitrate dropdown: 320 kbps · best FFmpeg attaches the cover and copies tags: -map_metadata 0 -map 0:a -map 0:v? -c:v copy \ -disposition:v:0 attached_pic -c:a libmp3lame -b:a 320k Output: artist - track (official video).mp3 ID3v2.3: Title/Artist preserved, cover art embedded. Result panel shows 'Engine: libmp3lame' (a re-encode, not a copy).
Screen recording (MOV) where you want voice only
A macOS screen recording saves as .mov with AAC audio. The same dropzone handles it — the extension just changes which demuxer FFmpeg uses. Pure narration, so 64 kbps voice keeps it tiny.
Source: Screen Recording 2026-06-10.mov (H.264 + AAC 48kHz) Bitrate dropdown: 64 kbps · voice Output: Screen Recording 2026-06-10.mp3 (~mono/stereo per source) The video track is discarded; only the narration remains. For a cleaner voice track, follow with the AI noise reducer.
Why a 'rename .mp4 to .mp3' trick fails — and this doesn't
Users sometimes try to rename an MP4 to .mp3 and wonder why their player rejects it. The audio inside an MP4 is AAC, not MP3 frames. This tool actually transcodes, so the output is a real MP3.
Manual rename: clip.mp4 -> clip.mp3 ==> player error / silence (the bytes are still an MP4 container with an AAC stream) This tool: clip.mp4 --[decode AAC -> encode libmp3lame]--> clip.mp3 (genuine MP3 frames, ID3v2.3 header — plays everywhere)
Feature-length 4K interview on Pro+Media
A 90-minute 4K interview capture is several gigabytes. The audio engine streams it on the Pro+Media tier (100 GB cap, unlimited duration). 192 kbps stereo is the sensible archive default.
Source: interview_4k_final.mp4 (3.8 GB, AAC 48kHz stereo, 1:31:00) Tier: Pro+Media (100 GB, unlimited duration) Bitrate dropdown: 192 kbps · default Output: interview_4k_final.mp3 (~131 MB, 1:31:00) Processing is CPU-bound (WASM, single audio thread) — long files take minutes, but nothing uploads.
Edge cases and what actually happens
Renaming the output to .mp3 won't help a video-only MP4
By designIf your MP4 genuinely has no audio track (some screen recorders capture video only), there is nothing to extract — FFmpeg's -map 0:a finds no audio stream and the job fails. Check the source plays with sound first; a silent MP4 produces no MP3.
File exceeds the free 50 MB / 30-minute limit
Tier limitThe audio family's Free tier caps each job at 50 MB and 30 minutes of duration — note these are two separate limits. A 40 MB but 45-minute MP4 is rejected on duration; a 12-minute but 80 MB MP4 is rejected on size. Pro raises both to 200 MB / 120 minutes, and Pro+Media to 100 GB with unlimited duration.
Output is one generation lossier than the source AAC
ExpectedAAC→MP3 is a lossy-to-lossy transcode: FFmpeg decodes the AAC to PCM then re-encodes with libmp3lame. This adds one encoding generation. It is inherent to producing MP3 from an MP4 — choose 320 kbps to minimise audible difference, or use the video-to-wav extractor for a lossless PCM extract instead.
MP4 has multiple audio tracks (e.g. languages)
First track usedMulti-track MP4s (dual language, commentary) are mapped with -map 0:a, which takes the default/first audio stream. There is no track-picker in this tool's UI. If you need a non-default track, that selection is a different workflow — see the MKV→MP3 guide which covers multi-track containers.
Cover art appears as a tiny corrupt image in some players
Player quirkCover art is re-attached with -disposition:v:0 attached_pic. A few minimalist players read the attached_pic disposition incorrectly and show a placeholder. The artwork is correctly embedded; the file is fine in mainstream players and tag editors. If a player misbehaves, the audio itself is unaffected.
DRM-protected MP4 (purchased video)
RejectFFmpeg cannot decode DRM-encrypted streams (e.g. FairPlay/Widevine-wrapped purchases). The demux fails because the audio packets are encrypted. This tool only processes unprotected files you own the rights to extract from.
Very high sample rate (96 kHz) source
PreservedThis tool sets no -ar, so a 96 kHz source is encoded to a 96 kHz MP3. MP3 supports 32/44.1/48 kHz natively; libmp3lame will handle higher rates but some legacy players may not. If you need a standard 44.1 kHz output, run the result through the sample-rate converter.
Browser tab runs out of memory on a huge file
Resource limitWASM runs inside the tab's memory budget. On a low-RAM device a multi-gigabyte 4K MP4 can exhaust memory even within tier limits. Close other tabs, use a desktop browser, or trim the video first. The processing is local, so available RAM is the real ceiling beyond the tier caps.
No audio API — this is browser-only
By designUnlike some JAD tool families, audio tools have no server-side /api/v1 endpoint or runner integration — everything happens in the browser via FFmpeg-WASM. There is no way to POST an MP4 to a JAD server for extraction, which is precisely why your files never leave your device.
Corrupted or partially-downloaded MP4
RejectA truncated MP4 missing its moov atom (common with interrupted downloads) can't be demuxed — FFmpeg reports a moov-atom-not-found style error. Re-download the file or repair the container; this tool can't recover missing structural data.
Frequently asked questions
Is extracting MP3 from MP4 lossless?
No. The audio inside an MP4 is almost always AAC, and producing an MP3 requires re-encoding with libmp3lame. That's one lossy-to-lossy generation. It is not a stream copy — you can't simply rename or remux AAC into an MP3 file. For a genuinely lossless extract, use the video-to-wav extractor, which outputs uncompressed PCM.
Does my MP4 get uploaded to a server?
No. The MP4 is read locally with the browser's File API and processed entirely by FFmpeg 8.1 compiled to WebAssembly. There is no upload, no queue, and — unlike some other JAD tool families — no server-side audio API at all. Your file stays on your device, which matters for private recordings and unreleased footage.
What bitrate should I pick?
320 kbps for music videos (minimises the single re-encode generation), 192 kbps (the default) for general mixed content, 128 kbps for talks and tutorials, and 64 kbps for pure mono voice. All five are constant-bitrate via libmp3lame; there is no VBR option in this tool.
Can I choose which audio track to extract from a multi-language MP4?
Not in this tool's UI — it maps the default/first audio stream with -map 0:a. There's a single Bitrate dropdown and nothing else. For multi-track containers like MKVs with separate language tracks, see the Convert MKV to MP3 guide.
Will the title, artist, and cover art survive?
Yes, when the source has them. FFmpeg runs -map_metadata 0 to copy container tags into an ID3v2.3 header and re-attaches any embedded image as MP3 cover art via -disposition:v:0 attached_pic. A music-video MP4 with artwork lands as a tagged MP3.
What's the maximum file size or length?
Free: 50 MB and 30 minutes per job (both limits apply independently). Pro: 200 MB / 120 minutes. Pro+Media and Developer: 100 GB with unlimited duration — enough for feature-length 4K captures. The real-world ceiling beyond that is your device's available RAM, since processing is local.
Why did renaming my MP4 to .mp3 not work in my player?
Because the bytes are still an MP4 container holding an AAC stream — only the extension changed. A real MP3 has MP3 frames and an ID3 header. This tool actually decodes the AAC and encodes proper MP3 frames, so the output plays everywhere.
Can I extract only part of the MP4's audio?
This tool extracts the whole audio track. To get a clip, extract the full MP3 first, then trim it with the audio trimmer by start/end timestamps. There is no in-extractor time-range control.
Does it support MOV, MKV, WebM, and AVI too?
Yes. The dropzone accepts MP4, M4V, MOV, MKV, WebM, and AVI — the file extension drives FFmpeg's demuxer. The audio inside is decoded regardless of container, then encoded to MP3. There are dedicated guides for MKV→MP3 and extracting WAV from MOV.
My MP4 came from a paid streaming download — can I extract it?
If it's DRM-protected, no. FFmpeg can't decode encrypted streams, so the extraction fails. Only unprotected files you have the rights to process will work.
Why is processing slow on a long video?
The audio engine runs FFmpeg-WASM single-threaded for the audio path, and the work is CPU-bound. A 90-minute file genuinely takes minutes to decode and re-encode. Nothing is uploading — the time is pure local computation. A faster CPU and a desktop browser help.
What if my MP4 has no audio at all?
Then there's nothing to extract and the job fails — -map 0:a finds no audio stream. Some screen recorders capture video only; play the source with sound first to confirm it has an audio track before extracting.
Privacy first
Every JAD Audio tool runs entirely in your browser via FFmpeg (WebAssembly) and RNNoise. Your audio files never leave your device — verified by zero outbound network requests during processing.