Compress M4A Online — Free File Size Reducer
Compress an M4A file to a smaller M4A by re-encoding the AAC audio stream at a lower bitrate. This is ideal for shrinking iTunes purchases, audiobooks, or podcasts while keeping the familiar M4A container with full chapter and iTunes metadata support.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your M4A 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
Because both the input and output are M4A files using AAC audio, this tool re-encodes the existing AAC stream at a new target bitrate rather than performing a simple remux. The original audio is decoded from its current bitrate and then re-encoded using FFmpeg's native AAC encoder at 128k (or your chosen bitrate). This means some quality is lost relative to the source — the degree depends on how aggressively you reduce the bitrate. The M4A container (an MPEG-4 file with an .m4a extension) is preserved, so all chapter markers and iTunes metadata embedded in the original file are carried through to the output. The -vn flag ensures no stray video or cover art stream causes container issues.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary. This is the same engine running inside your browser via WebAssembly (FFmpeg.wasm), so the command shown here is directly portable to a desktop FFmpeg installation. |
-i input.m4a
|
Specifies the source M4A file. FFmpeg reads the MPEG-4 container and identifies the AAC audio stream (and any cover art video stream) inside it before processing begins. |
-c:a aac
|
Sets the audio encoder to FFmpeg's built-in AAC encoder. Because the output is also M4A/AAC, this re-encodes the audio stream at the new target bitrate rather than copying the original stream unchanged. |
-b:a 128k
|
Targets an average audio bitrate of 128 kilobits per second for the re-encoded AAC stream. This is the default compression level, balancing reasonable file size reduction against acceptable audio quality for both music and speech content. |
-vn
|
Disables any video stream output. Some M4A files carry an embedded cover art image stored as a video track; this flag ensures it is excluded so the output remains a clean audio-only M4A without container compatibility issues. |
output.m4a
|
The filename for the compressed M4A file. The .m4a extension tells FFmpeg to wrap the re-encoded AAC audio in an MPEG-4 container, preserving compatibility with iTunes, Apple Music, Apple Podcasts, and other M4A-aware software. |
Common Use Cases
- Shrinking a large iTunes audiobook or podcast archive so it fits on an older iPhone or iPod with limited storage
- Reducing the file size of AAC music purchases for sharing over messaging apps that impose file size limits
- Compressing lecture recordings saved as M4A before uploading them to a course platform with a storage quota
- Creating a lower-bitrate preview version of a podcast episode for mobile data-conscious listeners while keeping the M4A format for Apple Podcasts compatibility
- Archiving old iTunes Radio recordings at a smaller size without changing the format expected by your media library software
- Reducing the bitrate of a high-quality AAC recording captured on an iPhone before embedding it in a presentation or e-learning module
Frequently Asked Questions
Yes — re-encoding AAC audio always involves some quality loss because you are decoding a lossy stream and then re-compressing it, a process sometimes called 'generation loss'. The impact is most audible at very low bitrates (64k or below) and in complex passages with lots of high-frequency content. For speech-based content like podcasts or audiobooks, 64k–96k is typically transparent; for music, 128k is a reasonable minimum and 192k or above will be very close to the original.
Staying in M4A preserves features that MP3 does not support, particularly chapter markers (used by Apple Podcasts and audiobook apps) and iTunes-specific metadata tags like album artwork, track ratings, and bookmarks. If your target device or software is already in the Apple ecosystem, keeping the M4A container avoids any compatibility issues and lets you continue using the file exactly as before, just at a smaller size.
Yes. FFmpeg copies the container structure and metadata from the input M4A to the output M4A during re-encoding. Chapter markers, track titles, artist tags, album artwork, and other iTunes metadata are retained in the output file. You can verify this by inspecting the output in iTunes, Music, or a tag editor like MP3Tag.
Replace the value after -b:a with your desired bitrate. For example, to target 96 kilobits per second use '-b:a 96k', or for higher quality use '-b:a 192k'. The available options for M4A/AAC are typically 64k, 96k, 128k, 192k, 256k, and 320k. Choosing a bitrate higher than the original source bitrate will not improve quality — it will only increase file size, so always compress to a bitrate equal to or below the source.
The single-file command shown on this page processes one file at a time, but you can adapt it for batch processing in a terminal. On Linux or macOS, run: for f in *.m4a; do ffmpeg -i "$f" -c:a aac -b:a 128k -vn "compressed_$f"; done. On Windows Command Prompt, use: for %f in (*.m4a) do ffmpeg -i "%f" -c:a aac -b:a 128k -vn "compressed_%f". This processes every M4A in the current folder and prefixes each output with 'compressed_' to avoid overwriting the originals.
For AAC in an M4A container, 64k is generally considered the practical floor for intelligible speech content such as podcasts or voice recordings, while music starts to sound noticeably hollow or artifacted below 96k. The FFmpeg AAC encoder performs reasonably at these low bitrates for mono content; stereo at 64k is more challenging. If your source is a mono recording, you can also add '-ac 1' to the command to encode mono output, effectively halving the required bitrate for the same perceived quality.
Technical Notes
This conversion uses FFmpeg's native AAC encoder (-c:a aac), which produces standards-compliant AAC-LC audio suitable for playback on all Apple devices, Android, and modern browsers. The native encoder is slightly lower quality than the third-party libfdk_aac encoder at equivalent bitrates, but libfdk_aac is not included in most pre-built FFmpeg distributions due to licensing restrictions. If you have a custom FFmpeg build with libfdk_aac, substituting '-c:a libfdk_aac' will yield better quality at the same bitrate. The -vn flag is included defensively: some M4A files contain an embedded cover art stream stored as a video track, and without -vn this could interfere with the output container. Bitrate is controlled with -b:a, which sets a target average bitrate; actual file size may vary slightly because AAC uses variable bitrate encoding internally to meet the target. Compressing an already-compressed AAC file always introduces some generation loss, so if you have access to the original uncompressed source (WAV, AIFF, ALAC), encode from that instead for the best possible output quality.