Convert MP3 to ALAC — Free Online Tool
Convert MP3 files to ALAC (Apple Lossless Audio Codec) stored in an M4A container, encoding your audio with the lossless ALAC codec for bit-perfect playback in iTunes, Apple Music, and iOS devices. Since MP3 is a lossy format, the ALAC output will be a lossless representation of what remains after the original MP3 compression — ideal for archiving your MP3 library in a lossless container compatible with the Apple ecosystem.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your MP3 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
MP3 stores audio using lossy compression via the MPEG Audio Layer III codec (libmp3lame), which permanently discards audio data deemed perceptually inaudible to reduce file size. During this conversion, FFmpeg decodes the MP3 fully back to raw PCM audio in memory, then re-encodes that PCM using Apple's ALAC codec into an MPEG-4 container (M4A). ALAC stores the PCM data with lossless compression, meaning no further audio quality is lost in this step — but because the MP3 decoding stage cannot recover data discarded during the original MP3 encoding, the resulting ALAC file is a lossless snapshot of the lossy MP3 source. File sizes will be notably larger than the source MP3, typically 3–6x, reflecting ALAC's lossless storage overhead.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary — the open-source multimedia processing engine that handles decoding the MP3, managing the PCM audio pipeline, and encoding the output ALAC stream into an M4A container. |
-i input.mp3
|
Specifies the input file — an MP3 encoded with the MPEG Audio Layer III codec. FFmpeg will automatically detect the codec and begin decoding the compressed audio frames into raw PCM samples for the encoding stage. |
-c:a alac
|
Instructs FFmpeg to encode the audio stream using Apple's lossless ALAC codec. This replaces the lossy MP3 compression with lossless compression, storing every decoded PCM sample without further data reduction. (Note: this flag appears twice in the resolved command, which is redundant but harmless — the last instance takes effect.) |
-c:a alac
|
A duplicate of the preceding audio codec flag in this specific resolved command. FFmpeg processes the last value when the same flag is specified more than once, so ALAC is still correctly selected. When running this command locally you may safely remove the first occurrence without changing the output. |
output.m4a
|
Defines the output filename with the .m4a extension, which signals to FFmpeg to wrap the ALAC-encoded audio in an MPEG-4 container — the standard and expected container for ALAC files used by iTunes, Apple Music, and iOS devices. |
Common Use Cases
- Migrating an existing MP3 music library into iTunes or Apple Music in a lossless-compatible format so that Apple's ecosystem treats the files as high-quality rather than compressed audio.
- Archiving MP3 masters in a lossless container so future format conversions (e.g., to FLAC or WAV) introduce no additional generation loss beyond what the original MP3 already introduced.
- Preparing audio files for playback on Apple HomePod, Apple TV, or AirPlay 2 receivers that prioritize ALAC streams for highest-fidelity output.
- Converting MP3 podcast production files or voiceover stems to ALAC for delivery to Apple Podcasts Connect or for storage in a Final Cut Pro / Logic Pro project that prefers lossless audio assets.
- Standardizing a mixed audio library (containing both ALAC and MP3 files) entirely into ALAC-in-M4A so all tracks share the same container format and metadata schema within an Apple ecosystem workflow.
- Creating an ALAC version of an MP3 to use as a distribution-ready archive when the original lossless master has been lost, preserving the highest possible fidelity from what survives.
Frequently Asked Questions
No — ALAC is a lossless codec, but it cannot restore audio information that MP3 compression already discarded. The ALAC file will be a perfect, lossless representation of the decoded MP3 audio, meaning no additional quality is lost in this conversion, but the sonic ceiling is still determined by the original MP3 bitrate. Think of it as a lossless photograph of a lossy image: the photograph itself introduces no new blur, but the original blur is still there.
MP3 at 128 kbps compresses audio very aggressively — a typical three-minute song might be around 3 MB. ALAC uses lossless compression, so it must store every sample of the decoded PCM audio, which for CD-quality stereo audio typically lands between 15–25 MB for the same track. The size increase is expected and is a direct result of switching from a lossy codec to a lossless one, not a sign that something went wrong.
FFmpeg will attempt to map ID3 metadata from the MP3 to the equivalent iTunes-style MP4 atoms used by ALAC M4A files. Common tags like title, artist, album, year, and track number are generally preserved. However, some ID3v2 frames that have no direct MP4 atom equivalent (such as certain SYLT lyrics or embedded chapter cue points) may be dropped or not mapped correctly, so it is worth verifying tags in iTunes or a tag editor after conversion.
ALAC has been open-source since 2011 and enjoys broad support beyond Apple devices. VLC, foobar2000, Plex, Kodi, and most modern Android devices with third-party players can decode ALAC. However, some older or budget Android media players and certain car stereos may not natively support ALAC in an M4A container, so compatibility testing on your target playback device is advisable if you are leaving the Apple ecosystem.
ALAC is a lossless codec and does not accept a bitrate or quality parameter — the output quality is always determined entirely by the decoded PCM from the source MP3. The only meaningful way to influence output quality here is to start with a higher-bitrate MP3 source (e.g., 320 kbps instead of 128 kbps). If you want to add a sample rate conversion, you can append '-ar 44100' before the output filename to explicitly target a specific sample rate.
Yes. On macOS or Linux you can loop over files in a directory with a shell command like: for f in *.mp3; do ffmpeg -i "$f" -c:a alac "${f%.mp3}.m4a"; done. On Windows PowerShell you can use: Get-ChildItem *.mp3 | ForEach-Object { ffmpeg -i $_.FullName -c:a alac ($_.BaseName + '.m4a') }. The core -c:a alac flag and output extension .m4a remain the same for each file.
Technical Notes
The conversion pipeline involves two distinct codec stages: MP3 decoding (libmp3lame in decode mode, outputting integer PCM) followed by ALAC encoding using Apple's open-source ALAC encoder bundled with FFmpeg. ALAC stores audio as 16-bit or 24-bit integer PCM inside an MPEG-4 container with the .m4a extension; because most MP3 sources are derived from 16-bit CD audio, the output will typically be 16-bit ALAC. The M4A container supports chapter markers (unlike MP3), though chapter data is not present in a standard MP3 source and would need to be added separately. One known limitation: embedded album artwork in MP3 files (stored as an APIC ID3 frame) may or may not transfer to the M4A covr atom depending on the FFmpeg build and version — verifying cover art in iTunes after conversion is recommended. The ALAC codec has no tunable quality parameters, making this one of the simpler FFmpeg pipelines: the only meaningful conversion decision is whether to resample the audio (not done by default), which FFmpeg avoids unless explicitly instructed, preserving the source sample rate (commonly 44.1 kHz for music-origin MP3s).