Convert M4A to ALAC — Free Online Tool
Convert M4A files (AAC-encoded audio) to ALAC (Apple Lossless Audio Codec) stored in an MPEG-4 container — upgrading your lossy AAC audio to a lossless format fully compatible with iTunes, Apple Music, and all Apple devices. Because AAC is already lossy, this conversion encodes the decoded PCM audio into ALAC without any additional quality degradation beyond what was lost in the original AAC encoding.
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
M4A files most commonly store AAC audio, which is a lossy codec — meaning some audio data was permanently discarded when the file was originally encoded. During this conversion, FFmpeg decodes the AAC stream back to raw PCM audio, then re-encodes it using the ALAC codec, which compresses that PCM data in a completely lossless way. The result is an M4A file (ALAC also uses the MPEG-4 container, sometimes saved with the .m4a extension) that is bit-for-bit identical to the decoded PCM — no further quality is lost. However, it is important to understand that ALAC cannot recover audio data that was already discarded by AAC encoding; the output quality ceiling is the quality of the original AAC source. Chapter metadata and iTunes tags present in the source M4A are preserved through the conversion.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which handles the decoding of the AAC audio stream from the source M4A and the subsequent encoding to ALAC. |
-i input.m4a
|
Specifies the input M4A file containing the AAC-encoded audio stream to be decoded and converted. |
-c:a alac
|
Sets the audio codec for the output to ALAC (Apple Lossless Audio Codec), instructing FFmpeg to encode the decoded PCM audio losslessly into the ALAC format inside an MPEG-4 container. |
-c:a alac
|
This flag appears twice in the resolved command — both instances direct FFmpeg to use the ALAC encoder for the audio stream. In practice, a single -c:a alac is sufficient; the duplicate is redundant but harmless. |
output.m4a
|
The output filename with an .m4a extension, which is the correct extension for ALAC audio stored in an MPEG-4 container — the same container format used by the AAC source file. |
Common Use Cases
- Archiving your iTunes-purchased AAC music library in a lossless-compatible format so it integrates seamlessly with Apple Music's lossless collection without mixing containers or codecs
- Preparing AAC podcast or audiobook M4A files for professional audio editing in a DAW that prefers lossless input, avoiding any further generational quality loss during editing and export
- Converting AAC-encoded M4A recordings from an iPhone voice memo or field recorder into ALAC so they can be stored alongside a lossless audio archive without format inconsistency
- Satisfying Apple ecosystem device requirements where certain older Apple TV or HomePod configurations prefer ALAC over AAC for local library playback
- Converting M4A source files to ALAC before transcoding to another lossless format (such as FLAC) as an intermediate step, keeping the pipeline lossless from this point forward
- Delivering audio assets to a client or collaborator who requires lossless M4A/ALAC files and whose workflow is Apple-centric, while your source files happen to be AAC-encoded M4A
Frequently Asked Questions
No — and this is the most important thing to understand about this conversion. AAC is a lossy codec, meaning audio data was permanently removed when the M4A was originally created. Converting to ALAC encodes the decoded audio losslessly, so no additional quality is lost from this point forward, but ALAC cannot reconstruct the data that AAC already discarded. The output will sound identical to the AAC source, but it will be stored losslessly, making it a stable archival format that won't degrade further through future re-encoding.
Yes, this is correct and expected. Both AAC and ALAC audio are stored in the MPEG-4 container format, which uses the .m4a extension for audio-only files. The difference is the codec inside: your source file contains an AAC audio stream, while the output contains an ALAC audio stream. iTunes, Apple Music, Finder, and most media players read the codec metadata inside the file rather than relying solely on the extension, so they will correctly identify the output as ALAC.
Significantly larger — typically 3x to 5x the size of the AAC source, depending on the audio content and the original AAC bitrate. A 128k AAC M4A might expand to several times its size as ALAC because ALAC stores the full decoded PCM data in compressed-but-lossless form, whereas AAC achieves its small file size through perceptual lossy compression. For a 4-minute song at 128k AAC (~4 MB), the ALAC equivalent would typically be 20–35 MB, similar to a CD-quality FLAC file.
Yes. Because both formats share the MPEG-4 container, iTunes metadata tags (artist, album, artwork, track number, etc.) and chapter markers present in the source M4A are preserved by FFmpeg during this conversion without any special flags. The ALAC codec operates only on the audio stream; the container-level metadata passes through intact.
ALAC support has expanded significantly beyond the Apple ecosystem. VLC, foobar2000, Kodi, Android (via many apps), and most modern media players support ALAC playback. However, native system-level support (without third-party apps) is still most reliable on Apple platforms — macOS, iOS, tvOS, and Apple TV. If cross-platform lossless compatibility is a priority, FLAC is generally a better choice, though FLAC is not natively supported by iTunes or Apple Music.
The command shown on this page processes a single file. To batch convert an entire folder of M4A files to ALAC on the command line, you can use a shell loop. On Linux/macOS: `for f in *.m4a; do ffmpeg -i "$f" -c:a alac "${f%.m4a}_alac.m4a"; done`. On Windows Command Prompt: `for %f in (*.m4a) do ffmpeg -i "%f" -c:a alac "%~nf_alac.m4a"`. This processes each file sequentially, naming the outputs with an `_alac` suffix to avoid overwriting the originals.
Technical Notes
ALAC (Apple Lossless Audio Codec) was open-sourced by Apple in 2011 and is natively supported across the entire Apple ecosystem. It stores audio at the original PCM bit depth and sample rate of its input — typically 16-bit/44.1kHz for CD-quality sources, but up to 24-bit/192kHz for high-resolution audio. When converting from AAC-encoded M4A, the output ALAC file inherits whatever sample rate and bit depth the AAC decoder produces, which for most consumer AAC files is 16-bit/44.1kHz. Unlike FLAC, ALAC does not support a configurable compression level via FFmpeg's standard interface — the encoder uses a fixed compression strategy. One known consideration: if your source M4A was encoded at a very low AAC bitrate (e.g., 64k or 96k), artifacts from that original encoding will be audibly present in the ALAC output and may actually sound more noticeable on high-quality playback equipment because the lossless container sets a higher listener expectation. The -vn flag is not required here since M4A is an audio-only container, but the ALAC codec flag explicitly ensures no accidental passthrough of any non-audio stream data.