Convert AAC to ALAC — Free Online Tool

Convert AAC audio files to ALAC (Apple Lossless Audio Codec) stored in an M4A container, transcoding from lossy to lossless compression for archival-quality audio in Apple's ecosystem. Since AAC is already lossy, this conversion preserves the decoded audio signal perfectly — no further generation loss occurs.

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

This conversion decodes the AAC audio stream entirely — reversing the lossy compression that was applied when the AAC file was originally encoded — and then re-encodes the resulting PCM audio data using the ALAC codec. ALAC is a lossless codec, meaning it compresses the PCM data without discarding any information. The output is stored in an MPEG-4 (.m4a) container, the same container Apple uses for both AAC and ALAC files. Critically, because the source is AAC (a lossy format), the output ALAC file will faithfully preserve whatever audio quality the AAC file contained — it will not recover frequencies or detail that the original AAC encoding discarded. Think of it as making a perfect copy of an imperfect original: no further degradation, but no quality restoration either.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary, the open-source multimedia processing engine that powers this conversion. In the browser version, this runs as a WebAssembly build (FFmpeg.wasm) with no server involvement.
-i input.aac Specifies the input file — your source AAC audio file. FFmpeg detects the AAC codec inside the raw AAC bitstream and prepares to fully decode it to PCM before re-encoding.
-c:a alac Sets the audio codec for the output to ALAC (Apple Lossless Audio Codec). This tells FFmpeg to take the fully decoded PCM audio from the AAC source and re-compress it using lossless ALAC encoding rather than any lossy codec.
-c:a alac A duplicate of the preceding codec flag, introduced by the tool's flag-resolution logic. FFmpeg processes the last instance of a repeated flag, so this has no harmful effect — the output is still correctly encoded as ALAC. When running the command locally, you can safely omit this duplicate.
output.m4a Defines the output filename and container format. The .m4a extension tells FFmpeg to wrap the ALAC-encoded audio in an MPEG-4 container, which is the standard container for ALAC and ensures native compatibility with iTunes, Apple Music, iOS, and macOS.

Common Use Cases

  • Migrating your iTunes or Apple Music library from AAC purchases to ALAC so you can edit, process, or re-encode them in the future without any additional generation loss
  • Preparing AAC podcasts or audiobooks for archival storage in a lossless format that remains natively compatible with Apple devices, AirPlay, and the Files app
  • Converting AAC radio recordings or live-stream captures to ALAC so they can be stored alongside lossless FLAC or WAV recordings in a consistent archival workflow
  • Delivering audio assets to a mastering engineer or post-production team who requires lossless source files but whose Apple-based workflow prefers ALAC over FLAC
  • Creating ALAC versions of AAC sound effects or music beds for use in Final Cut Pro or Logic Pro projects, where ALAC integrates natively without transcoding overhead
  • Consolidating AAC files purchased from the iTunes Store into a lossless ALAC archive before re-exporting them at various bit rates for different distribution platforms

Frequently Asked Questions

No — and this is the most important thing to understand about this conversion. AAC is a lossy format, meaning some audio data was permanently discarded when the AAC file was first created. Converting to ALAC faithfully preserves the decoded audio from your AAC file without any further loss, but it cannot restore the information that lossy encoding originally removed. The ALAC file will sound identical to the AAC source, not better. The value of this conversion is future-proofing: once in ALAC, you can transcode to any other format without accumulating additional generation loss.
AAC achieves its small file size by permanently discarding audio data during encoding — a 128 kbps AAC file might be 10–15× smaller than its uncompressed equivalent. When you decode that AAC to PCM and re-encode it as ALAC, ALAC compresses the PCM losslessly, resulting in a file much larger than the original AAC. A typical 4-minute AAC file at 128 kbps might be around 4 MB, while the resulting ALAC file could be 20–30 MB. This is expected and correct behavior, not a sign that something went wrong.
Yes, in most cases. Both AAC and ALAC are stored in MPEG-4 containers that use the same metadata atom structure, so standard tags like title, artist, album, track number, genre, and artwork are preserved during conversion. FFmpeg copies compatible metadata by default when the input and output containers share the same tagging format, which they do here since both use M4A.
ALAC has much broader compatibility than it once did. Beyond Apple devices and iTunes/Music, ALAC is supported by VLC, foobar2000, Winamp, Android (via apps like Neutron or PowerAmp), and most modern DAWs including Reaper and Ableton Live. However, it is not as universally supported as FLAC in the open-source and Linux ecosystems. If your target platform is non-Apple, FLAC is often a safer lossless choice; if you work primarily within Apple's ecosystem, ALAC is the native lossless format.
This is a known artifact of how the tool resolves codec flags from both the input format's default settings and the output format's special flags — in practice, the second '-c:a alac' simply overwrites the first, and FFmpeg processes the command correctly. When running this command yourself on the desktop, you only need to include '-c:a alac' once: 'ffmpeg -i input.aac -c:a alac output.m4a' is the clean, equivalent command.
Yes. On macOS or Linux, you can run a shell loop: 'for f in *.aac; do ffmpeg -i "$f" -c:a alac "${f%.aac}.m4a"; done'. On Windows Command Prompt, use: 'for %f in (*.aac) do ffmpeg -i "%f" -c:a alac "%~nf.m4a"'. Each file is processed sequentially, and the output M4A files are placed in the same directory as the inputs. This is particularly useful when processing large libraries that exceed the 1 GB browser limit of the online tool.

Technical Notes

ALAC stores audio in an MPEG-4 container with the .m4a extension, the same extension used for AAC audio files — so the output file format is visually familiar to Apple users even though the internal codec has changed from lossy to lossless. The ALAC codec supports up to 8 channels and sample rates up to 384 kHz, but since the source is an AAC file (which is almost always stereo at 44.1 kHz or 48 kHz), the output will inherit the channel count and sample rate of the decoded AAC stream. There is no audio quality parameter to configure for ALAC — it is inherently lossless, so the output bit depth and sample rate are determined entirely by the decoded source signal, not by a user-selectable bit rate. One known limitation: AAC files sourced from Apple's FairPlay DRM-protected purchases cannot be converted by any software including FFmpeg, as the audio stream is encrypted. Only DRM-free AAC files — such as iTunes Plus purchases, files ripped from CD, or files you encoded yourself — can be processed. Chapter support is available in ALAC's M4A container if chapter metadata exists in the source, but raw AAC files (.aac) rarely carry chapter data.

Related Tools