Compress AAC Online — Free File Size Reducer

Compress an AAC file by re-encoding it to a lower bitrate using FFmpeg's native AAC encoder. This is useful for reducing file size while keeping the widely-supported .aac container — ideal for trimming audio files before streaming or distributing on mobile platforms.

FFmpeg Command

Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg

Free — no uploads, no signups. Your files never leave your browser.

Estimated output:

Conversion Complete!

Download

How It Works

Because both the input and output are AAC, this tool performs a full re-encode rather than a simple remux. The existing AAC audio stream is decoded to raw PCM audio in memory, then re-encoded using FFmpeg's built-in AAC encoder at the target bitrate (default 128k). This means every encode introduces generation loss — quality degrades compared to the original — so choosing a bitrate close to or matching the source is wise if you only want minor compression. The output remains a raw AAC bitstream in an ADTS container, preserving compatibility with iTunes, iOS, Android, and browser-based audio players.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg program. In this browser-based tool, it runs via FFmpeg.wasm (WebAssembly) entirely in your browser — no files leave your device. On your desktop, this calls your locally installed FFmpeg binary.
-i input.aac Specifies the input file — a raw AAC audio file in ADTS format. FFmpeg will decode the AAC bitstream to uncompressed PCM audio in memory before re-encoding it at the target bitrate.
-c:a aac Sets the audio codec for the output to FFmpeg's built-in AAC encoder. Since both input and output are AAC, this forces a full re-encode (decode then re-compress) rather than a stream copy, allowing the bitrate to be changed.
-b:a 128k Sets the target audio bitrate to 128 kilobits per second, which is the standard baseline for AAC quality acceptable for music. Lowering this value (e.g., to 64k or 96k) will reduce the file size further at the cost of audio fidelity.
output.aac The name of the compressed output file. FFmpeg writes a new raw AAC bitstream in ADTS format, which is compatible with iTunes, iOS, Android, and web audio players. The original input file is not modified.

Common Use Cases

  • Reducing the file size of AAC audio tracks downloaded from iTunes or Apple Music before sharing them via email or messaging apps with attachment size limits.
  • Compressing high-bitrate AAC recordings (192k–320k) from voice memo apps down to 64k or 96k for podcast pre-production where final encoding will happen in a DAW anyway.
  • Preparing AAC audio assets for a mobile app where the app store or CDN has strict size budgets per audio file.
  • Downsampling AAC lecture recordings or audiobooks to 64k to fit more content onto a device with limited storage.
  • Creating a lower-bitrate preview version of an AAC music file for web streaming while keeping the original high-quality file for download.

Frequently Asked Questions

Yes, even if you keep the same bitrate, re-encoding introduces generation loss because the audio must be fully decoded and then re-compressed. Each encode cycle discards audio information that cannot be recovered. If your goal is simply to change the container or metadata without touching quality, you should use stream copy (-c:a copy), but that only works if no compression change is needed.
For music, 128k is generally considered the minimum acceptable bitrate with the AAC codec — most listeners notice quality degradation below this threshold. For speech-only content like podcasts or voice recordings, 64k or 96k mono is usually sufficient and can dramatically reduce file size. Setting stereo audio to 64k for music is not recommended, as the AAC encoder at that rate produces audible artifacts like ringing and smearing on complex audio.
FFmpeg's built-in 'aac' encoder (used in this tool) is freely available in all FFmpeg builds and produces good quality at 128k and above. The 'libfdk_aac' encoder, based on Fraunhofer's reference implementation, generally produces better quality at lower bitrates — especially below 96k — but requires a separately compiled FFmpeg binary due to licensing restrictions. For most use cases above 96k, the difference is minimal and the built-in encoder is perfectly adequate.
Replace the value after -b:a in the command with your desired bitrate. For example, to compress to 96k, change '-b:a 128k' to '-b:a 96k', giving you: ffmpeg -i input.aac -c:a aac -b:a 96k output.aac. Supported values include 64k, 96k, 128k, 160k, 192k, 224k, 256k, and 320k. Choosing a bitrate higher than the source file's original bitrate will not improve quality — it will only increase file size.
Raw AAC files in ADTS format (.aac) have very limited metadata support compared to AAC wrapped in an M4A/MP4 container. FFmpeg will attempt to copy any ID3 tags present in the input, but ADTS AAC streams are not designed to carry rich metadata. If metadata preservation is important, consider working with .m4a files instead, which use the MPEG-4 container and support full iTunes-style tagging.
Yes. On Linux or macOS, you can use a shell loop: for f in *.aac; do ffmpeg -i "$f" -c:a aac -b:a 128k "compressed_$f"; done. On Windows Command Prompt, use: for %f in (*.aac) do ffmpeg -i "%f" -c:a aac -b:a 128k "compressed_%f". This processes every .aac file in the current directory and saves compressed versions with a 'compressed_' prefix, leaving the originals intact.

Technical Notes

When compressing AAC to AAC, the output file uses an ADTS (Audio Data Transport Stream) bitstream, which is the standard raw container for .aac files. ADTS adds a small sync header to each frame, making the stream self-synchronizing and suitable for streaming, but it lacks support for chapters, multiple audio tracks, or embedded cover art. If your source file was originally encoded at, say, 96k, re-encoding at 128k will not recover lost detail — the effective quality ceiling is always the source bitrate. For archival or quality-sensitive workflows, keep the original high-bitrate file and only distribute the compressed version. FFmpeg's native AAC encoder supports VBR mode (using -q:a 1–5 instead of -b:a) as an alternative for better quality-to-size ratio, though the tool defaults to CBR bitrates for predictability. The libfdk_aac encoder is not available in this browser-based tool due to licensing constraints, but the native aac encoder performs well at 96k and above.

Related Tools