Convert ALAC to CAF — Free Online Tool

Convert ALAC audio files (.m4a) to Apple's Core Audio Format (.caf), transcoding the lossless Apple Lossless stream into uncompressed PCM audio (16-bit, little-endian) — ideal for use in Apple's development ecosystem, Core Audio APIs, and professional audio workflows that require CAF's extended file size support.

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

ALAC (Apple Lossless Audio Codec) stores audio in an MPEG-4 container using lossless compression — the original PCM audio data is perfectly reconstructed on decode, but stored more compactly. During this conversion, FFmpeg decodes the ALAC stream back to raw PCM, then re-encodes it as pcm_s16le (signed 16-bit little-endian PCM) and wraps it in a CAF container. Because CAF does not support the ALAC codec directly in this tool's configuration, the audio is transcoded rather than remuxed. The result is uncompressed PCM audio in CAF — a format natively understood by macOS Core Audio, Xcode's audio toolchain, and professional audio applications like Logic Pro. File size will increase significantly compared to the compressed ALAC source, as PCM stores every audio sample without compression.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — the open-source multimedia processing engine that handles decoding the ALAC stream from the .m4a container and encoding it into the CAF output.
-i input.m4a Specifies the input file: an MPEG-4 container (.m4a) carrying an ALAC (Apple Lossless Audio Codec) audio stream. FFmpeg reads and decodes the losslessly compressed ALAC data back to raw PCM for further processing.
-c:a pcm_s16le Sets the output audio codec to signed 16-bit little-endian uncompressed PCM — the standard uncompressed audio format natively supported by Core Audio on macOS and iOS. This transcodes the decoded ALAC audio into raw, uncompressed samples rather than re-compressing it.
-b:a 128k Specifies a target audio bitrate of 128 kbps. For uncompressed PCM codecs like pcm_s16le, this flag has no practical effect — PCM bitrate is determined entirely by sample rate and bit depth, not a compression target. It is included by the tool's configuration but does not alter the output.
output.caf Defines the output file as a CAF (Core Audio Format) container. FFmpeg infers the container format from the .caf extension and muxes the pcm_s16le audio stream into Apple's CAF format, which supports large file sizes beyond the 4GB limit of WAV and AIFF.

Common Use Cases

  • Preparing audio assets for macOS or iOS app development, where Core Audio APIs and Xcode's audio frameworks expect CAF-wrapped PCM files
  • Converting an ALAC music library export from iTunes or Apple Music into CAF for import into Logic Pro or GarageBand as uncompressed project audio
  • Supplying uncompressed CAF audio to AVFoundation-based tools and scripts that process audio on macOS without needing to decode a compressed ALAC stream at runtime
  • Archiving ALAC recordings into CAF/PCM for use with professional audio editors that support CAF but may have limited ALAC decoder support
  • Generating CAF test audio files from lossless ALAC sources for QA testing of audio playback pipelines on Apple platforms
  • Converting long-form ALAC recordings (lectures, concerts, audiobooks) to CAF, taking advantage of CAF's ability to handle files larger than the 4GB limit imposed by WAV and AIFF

Frequently Asked Questions

It depends on the bit depth of your original ALAC file. ALAC can store audio at 16, 20, 24, or 32 bits per sample. If your source is 16-bit ALAC, converting to pcm_s16le is bit-perfect — no quality is lost. However, if your ALAC file was recorded at 24-bit or higher (common for studio recordings), downconverting to 16-bit pcm_s16le will discard the lower-order bits, resulting in a slight reduction in dynamic range. To preserve 24-bit resolution, you can modify the FFmpeg command to use pcm_s24le instead.
ALAC uses lossless compression that typically reduces file size by 40–60% compared to uncompressed audio. When this tool converts your ALAC file to CAF with pcm_s16le, it unpacks that compression entirely — every audio sample is stored as a raw integer with no compression applied. For example, a stereo 16-bit ALAC file at 44.1 kHz that was 50 MB might expand to 90–100 MB as uncompressed PCM in CAF. This is expected behavior and a direct consequence of switching from lossless-compressed to uncompressed audio.
CAF does not support chapter markers, so any chapter data embedded in your ALAC .m4a will be lost during conversion. Basic metadata tags (such as artist, album, and title) may be carried over depending on FFmpeg's CAF muxer support, but CAF's metadata capabilities are more limited than the MPEG-4 container used by ALAC. If metadata preservation is critical, verify the output file's tags after conversion using a tool like MediaInfo or ffprobe.
Yes — CAF supports FLAC as an audio codec, which would preserve your audio losslessly in a compressed form. To do this, modify the FFmpeg command to use '-c:a flac' instead of '-c:a pcm_s16le' and drop the '-b:a 128k' flag (FLAC uses variable lossless compression, not a fixed bitrate). The resulting CAF file will be losslessly compressed and significantly smaller than a PCM CAF file, while still being compatible with most macOS Core Audio tools.
For pcm_s16le (uncompressed PCM), the '-b:a 128k' bitrate flag in this command has no meaningful effect — PCM's bitrate is determined entirely by sample rate and bit depth, not a quality setting. To change the bit depth, replace 'pcm_s16le' with another PCM variant: 'pcm_s24le' for 24-bit, 'pcm_s32le' for 32-bit, or 'pcm_f32le' for 32-bit floating point. If you switch to a lossy codec like AAC (e.g., '-c:a aac'), then '-b:a 256k' becomes meaningful and controls the compressed audio bitrate.
Yes. On macOS or Linux, you can run a shell loop: 'for f in *.m4a; do ffmpeg -i "$f" -c:a pcm_s16le output_"${f%.m4a}.caf"; done'. On Windows Command Prompt, use a for loop: 'for %f in (*.m4a) do ffmpeg -i "%f" -c:a pcm_s16le "%~nf.caf"'. Batch processing in the terminal is especially useful for large ALAC libraries, and is faster than converting files one-by-one through a browser-based tool.

Technical Notes

ALAC is stored in an MPEG-4 (.m4a) container and supports bit depths up to 32 bits and sample rates up to 384 kHz, making it a genuine lossless format used heavily in Apple's ecosystem. CAF was designed by Apple specifically to address the 4GB file size ceiling of WAV and AIFF, making it well-suited for high-resolution or long-duration audio. This tool's default output codec is pcm_s16le — signed 16-bit little-endian PCM — which is uncompressed and universally readable by Core Audio on macOS and iOS. One important limitation: CAF does not support multiple audio tracks or subtitle streams, but ALAC .m4a files also carry only a single audio track, so no stream data is lost on that front. The '-b:a 128k' flag in the default command is a passthrough artifact of the tool's configuration and does not alter the output for PCM codecs, where bitrate is mathematically fixed by sample rate and bit depth. If your ALAC source was recorded at 24-bit depth (common for music production or field recording), consider overriding the codec to pcm_s24le to avoid bit-depth reduction. CAF files are primarily consumed by Apple platform tools; they are not widely supported outside the macOS/iOS ecosystem, so this conversion is most appropriate for Apple-centric development and production workflows.

Related Tools