Extract Audio from MP4 to AAC — Free Online Tool
Extract the AAC audio stream from an MP4 file and save it as a standalone .aac file — ideal for isolating music, dialogue, or any audio encoded with the AAC codec that MP4 commonly uses by default. Because MP4 typically stores audio in AAC format natively, this tool can often extract it with minimal or no quality loss.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your MP4 file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
MP4 files most commonly store audio using the AAC codec (Advanced Audio Coding) by default. When extracting to .aac, FFmpeg reads the existing AAC audio stream from the MP4 container and re-encodes it at the specified bitrate (128k by default). The video stream is discarded entirely using the -vn flag. Because AAC is already the native audio codec in most MP4 files, the output is a raw AAC audio stream wrapped in an ADTS (Audio Data Transport Stream) container — a lightweight, headerless format widely supported by media players and streaming services. Note that re-encoding does introduce a small generational quality loss even if the source was already AAC; if your priority is bit-perfect extraction, tools that support stream copying (-c:a copy) would be preferable, though the .aac container format works best with re-encoded output in most toolchains.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool. In this browser-based tool, FFmpeg runs locally in your browser via WebAssembly (FFmpeg.wasm) — no data leaves your device. |
-i input.mp4
|
Specifies the input file — your source MP4 video, which contains both a video stream and at least one AAC audio stream that will be extracted. |
-vn
|
Stands for 'video none' — tells FFmpeg to ignore and discard all video streams from the MP4, so the output contains only the extracted audio track. |
-c:a aac
|
Sets the audio codec to FFmpeg's native AAC encoder, which re-encodes the audio into an AAC bitstream suitable for the ADTS .aac output container. |
-b:a 128k
|
Sets the target audio bitrate to 128 kilobits per second, which is the standard default for AAC and provides a good balance of file size and audio quality for music and speech content. |
output.aac
|
The output filename with the .aac extension, which tells FFmpeg to write a raw ADTS-framed AAC audio file — a format natively compatible with Apple devices, iTunes, and most modern media players. |
Common Use Cases
- Extract the audio commentary track from an MP4 video lecture or webinar to listen to it as a podcast on your phone during a commute
- Pull the AAC audio from an MP4 music video to create an iTunes or Apple Music compatible audio file, since AAC is Apple's preferred audio format
- Isolate dialogue or narration from an MP4 screen recording to use as a standalone voiceover file in a video editing project
- Extract background music from an MP4 clip to check whether it matches a known track for copyright or licensing verification
- Strip the audio from an MP4 interview recording to archive a smaller audio-only file when the video content is no longer needed
- Extract AAC audio from an MP4 to sideload onto an iOS device or Apple TV, where AAC is natively supported without any transcoding overhead
Frequently Asked Questions
Yes, slightly. Even though most MP4 files already store audio as AAC, this tool re-encodes the audio at the target bitrate (128k by default) rather than copying the stream directly. Every re-encode of a lossy format like AAC introduces a small degree of generational quality loss. For most listeners this difference is inaudible at 128k or higher, but if preserving the exact original audio data is critical, you would need to use FFmpeg locally with the -c:a copy flag to stream-copy the audio without re-encoding.
The .aac extension signals a raw ADTS-wrapped AAC bitstream, while .m4a is an AAC audio stream inside an MPEG-4 container — essentially an MP4 file with only audio. This tool outputs a true .aac file, which is more universally compatible as a raw audio format. If you need .m4a specifically (for example, for iTunes metadata tagging), you would change the output filename extension to .m4a in a local FFmpeg command, which causes FFmpeg to wrap the AAC audio in an MP4 container instead.
Metadata preservation depends on what tags were present in the original MP4 and how they map to the ADTS AAC container format. ADTS AAC has very limited support for embedded metadata compared to MP4 or M4A containers. In practice, most metadata tags from the source MP4 will not be carried over to the .aac output. If metadata preservation is important, consider using .m4a as the output format locally with FFmpeg, which supports full iTunes-style metadata tagging.
The 'aac' codec is FFmpeg's built-in native AAC encoder, which is what this tool uses. It is freely available in all FFmpeg builds and produces good quality output. The 'libfdk_aac' encoder is based on the Fraunhofer FDK AAC library and is generally considered to produce slightly better audio quality at the same bitrate, particularly at lower bitrates like 64k–96k. However, libfdk_aac has licensing restrictions that prevent it from being included in standard FFmpeg.wasm builds, so the native 'aac' encoder is used here.
Replace the -b:a 128k value in the command with your desired bitrate. For example, use -b:a 192k or -b:a 256k for higher quality at the cost of a larger file size, or -b:a 96k for a smaller file with slightly reduced quality. The full command at 192k would look like: ffmpeg -i input.mp4 -vn -c:a aac -b:a 192k output.aac. For most music and speech content, 128k AAC is transparent to the majority of listeners, but 192k–256k is recommended if the audio will be further edited or re-encoded.
The single-file command shown here processes one file at a time, but you can easily adapt it for batch processing in a terminal. On Linux or macOS, use: for f in *.mp4; do ffmpeg -i "$f" -vn -c:a aac -b:a 128k "${f%.mp4}.aac"; done. On Windows Command Prompt, use: for %f in (*.mp4) do ffmpeg -i "%f" -vn -c:a aac -b:a 128k "%~nf.aac". This processes every MP4 in the current folder and outputs a corresponding .aac file for each one.
Technical Notes
MP4 (MPEG-4 Part 14) stores its audio most commonly as AAC using the HE-AAC or AAC-LC profile, making the extraction to .aac a same-codec transcode rather than a cross-codec conversion. The output uses the ADTS (Audio Data Transport Stream) framing format, which is the standard container for raw AAC bitstreams and is distinct from the MPEG-4 container used by .m4a files. ADTS AAC is well-supported in VLC, Windows Media Player, Apple devices, and most web browsers via the HTML5 Audio element. One limitation of ADTS AAC is that it does not support chapter markers, multiple audio tracks, or subtitle tracks — all of which may be present in the source MP4 but will be discarded during extraction. If the source MP4 contains multiple audio tracks (e.g., multiple language dubs), only the default audio stream will be extracted; use the -map 0:a:1 flag locally to target a specific track by index. The -vn flag ensures no video data is written, which also means any embedded cover art stored as a video stream in the MP4 will be dropped from the output.