Convert M4A to CAF — Free Online Tool

Convert M4A files (AAC-encoded audio from iTunes, podcasts, or Apple Music) to CAF (Core Audio Format), Apple's professional container that supports uncompressed PCM audio and large file sizes beyond the 4GB limit of WAV. This tool transcodes your compressed AAC audio to 16-bit PCM inside a CAF container, making it compatible with Core Audio frameworks, Logic Pro, and other Apple professional audio tools.

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

M4A files contain AAC-encoded audio — a lossy compressed format — wrapped in an MPEG-4 container. CAF, by contrast, is Apple's extensible container most commonly used with uncompressed PCM audio. This conversion is not a simple remux: because AAC and PCM are fundamentally different codecs, FFmpeg must fully decode the compressed AAC bitstream from your M4A file and re-encode it as 16-bit little-endian PCM (pcm_s16le) inside the CAF container. This means the output file will be significantly larger than the input — a 5-minute M4A at 128k might be 5MB, while the resulting CAF could be 50MB or more. Since the original M4A was already lossy, this process does not recover any lost audio detail; the PCM output is a faithful but uncompressed representation of what the AAC encoded.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — the open-source multimedia processing engine that powers this conversion both in the browser (via FFmpeg.wasm) and on the desktop when you run the command locally.
-i input.m4a Specifies the input file: an M4A container holding an AAC-encoded audio stream, typically originating from iTunes, Apple Music, or a podcast download.
-c:a pcm_s16le Sets the audio codec for the output to signed 16-bit little-endian PCM — an uncompressed audio format. This decodes the lossy AAC from the M4A and re-encodes it as raw PCM samples, which is the format expected by Core Audio and most Apple professional audio tools when reading CAF files.
-b:a 128k Nominally sets a 128 kbps audio bitrate target, but this flag has no practical effect when the output codec is pcm_s16le, since PCM is uncompressed and its bitrate is fixed by sample rate and bit depth rather than an encoder quality setting. It is included here for command consistency but does not alter the output.
output.caf Defines the output file with a .caf extension, which tells FFmpeg to wrap the PCM audio stream in Apple's Core Audio Format container — the format designed for large uncompressed audio files within the Apple ecosystem.

Common Use Cases

  • Importing Apple Music or iTunes-purchased M4A tracks into Logic Pro or GarageBand as uncompressed audio for professional mixing or mastering workflows
  • Preparing M4A podcast audio for use in Core Audio-based iOS or macOS apps that require PCM data in a CAF container for low-latency playback
  • Archiving AAC-encoded audio in a format that supports files larger than 4GB, which WAV and AIFF cannot handle — useful when concatenating many M4A files into a single long-form CAF
  • Supplying audio assets to Xcode projects or SpriteKit/SceneKit games that use AVAudioPlayer with CAF files for reliable Apple-platform compatibility
  • Expanding M4A audiobooks or lecture recordings into CAF for audio analysis or transcription pipelines that require raw PCM sample access via Core Audio APIs
  • Converting AAC audio to an uncompressed CAF baseline before applying lossless processing in professional tools that cannot decode AAC natively

Frequently Asked Questions

No. M4A files store audio in AAC, which is a lossy format — meaning some audio detail was permanently discarded when the M4A was originally created. Converting to CAF with pcm_s16le produces an uncompressed copy, but it is an uncompressed copy of already-lossy audio. The waveform stored in the CAF will be exactly what AAC decoded to, not a restoration of the original recording. If audio fidelity is critical, always work from the original lossless source.
AAC compression in M4A achieves file sizes roughly 10–12x smaller than uncompressed audio by discarding perceptually redundant data. When you convert to CAF with pcm_s16le, FFmpeg decodes the AAC and stores every audio sample as raw 16-bit integers with no compression applied. A typical stereo M4A at 128 kbps will expand to approximately 1,411 kbps in 16-bit PCM — that is the standard CD-quality uncompressed bitrate. So a 10MB M4A could easily become a 100MB CAF file.
Metadata preservation when converting to CAF is limited and inconsistent. M4A containers support rich iTunes metadata including artist, album, genre, and embedded artwork. CAF's metadata model is structurally different and most iTunes-style tags are not carried over by FFmpeg during this conversion. If your workflow depends on metadata, consider exporting it separately with a tag editor before converting, or managing it within your DAW or Apple development environment after the fact.
M4A does support chapter markers, which are commonly used in audiobooks and long-form podcasts. CAF does not support a chapter structure, so any chapter data present in the source M4A will be lost during conversion to CAF. If chapter navigation is important, you would need to split the M4A into separate files by chapter before converting, rather than relying on chapter metadata to survive in the CAF output.
Replace '-c:a pcm_s16le' with '-c:a pcm_s24le' in the command to get 24-bit little-endian PCM inside the CAF container, which is the standard bit depth for professional audio work in Logic Pro and other DAWs. The full command would be: ffmpeg -i input.m4a -c:a pcm_s24le output.caf. Note that the '-b:a' bitrate flag has no effect on PCM codecs since PCM bitrate is determined entirely by sample rate and bit depth, not a compression target.
Yes, on macOS or Linux you can loop over files in the terminal using a shell one-liner: for f in *.m4a; do ffmpeg -i "$f" -c:a pcm_s16le "${f%.m4a}.caf"; done. This processes every M4A in the current directory and writes a matching CAF file alongside it. On Windows PowerShell, use: Get-ChildItem *.m4a | ForEach-Object { ffmpeg -i $_.FullName -c:a pcm_s16le ($_.BaseName + '.caf') }.

Technical Notes

The CAF format was designed by Apple specifically to address the 4GB file size ceiling of WAV and AIFF — a limitation that can be hit with long uncompressed recordings. CAF stores audio with a 64-bit file size field, making it suitable for hours of PCM audio in a single file. The default codec chosen for this conversion is pcm_s16le (signed 16-bit little-endian PCM), which matches CD-quality bit depth and is broadly compatible across Apple's Core Audio stack. CAF also supports pcm_s24le and pcm_s32le for higher-resolution professional workflows, and even lossy codecs like AAC or Opus if container flexibility is needed rather than uncompressed output. One important caveat: the '-b:a 128k' flag in the command is effectively a no-op when the output codec is pcm_s16le, since PCM audio has a fixed bitrate determined by sample rate and bit depth, not an encoder quality setting. The input M4A's sample rate (commonly 44,100 Hz or 48,000 Hz) is preserved by default unless you explicitly resample with '-ar'. CAF files are natively supported on macOS and iOS but are not widely supported on Windows or Linux platforms, so this format is best suited for Apple-ecosystem workflows.

Related Tools