Convert AIFF to CAF — Free Online Tool

Convert AIFF audio files to Apple's Core Audio Format (CAF), transcoding the big-endian PCM audio from AIFF into CAF's native little-endian PCM container. CAF removes the 4GB file size ceiling of AIFF and is purpose-built for macOS and iOS audio workflows.

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

AIFF stores uncompressed PCM audio in big-endian byte order (pcm_s16be, pcm_s24be, etc.), a legacy of Motorola-era Apple hardware. CAF, by contrast, uses little-endian byte order (pcm_s16le) aligned with modern Intel and Apple Silicon processors. This conversion re-encodes the raw audio samples from big-endian to little-endian 16-bit PCM — a byte-order swap with no audible quality loss at the same bit depth. No compression is applied by default, so the output remains an uncompressed lossless file. The container itself changes from AIFF's legacy IFF-based structure to CAF's modern chunk-based format, which supports files larger than 4GB and is natively handled by Core Audio APIs on macOS and iOS.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary. In the browser-based tool, this runs via FFmpeg.wasm compiled to WebAssembly; locally, it calls your system-installed FFmpeg executable.
-i input.aiff Specifies the input file — an AIFF container holding uncompressed big-endian PCM audio (typically pcm_s16be, pcm_s24be, or pcm_f32be). FFmpeg detects the AIFF format and its codec automatically from the file header.
-c:a pcm_s16le Sets the output audio codec to 16-bit signed PCM in little-endian byte order, which is the native uncompressed format for CAF on modern Apple hardware. This performs the big-endian to little-endian byte-swap from AIFF's pcm_s16be without any lossy compression.
-b:a 128k Specifies a target audio bitrate of 128 kbps. For PCM codecs like pcm_s16le, this flag has no effect — uncompressed PCM bitrate is fixed by sample rate and bit depth — but it would become active if you switch to a compressed codec like AAC or libopus.
output.caf Defines the output filename and tells FFmpeg to wrap the re-encoded audio in a CAF (Core Audio Format) container. The .caf extension triggers FFmpeg's CAF muxer, which writes the little-endian PCM stream into Apple's modern chunk-based container format.

Common Use Cases

  • Migrating a large AIFF-based audio archive (files over 4GB from high-sample-rate recordings) to CAF to eliminate the AIFF file size ceiling
  • Preparing uncompressed audio assets for an iOS or macOS app that uses AVFoundation or Core Audio, which natively favor CAF containers
  • Converting AIFF stems from a Pro Tools session into CAF files for use in Logic Pro X or GarageBand without introducing lossy compression
  • Delivering broadcast-ready audio to an Apple platform pipeline that requires CAF as its ingest format for post-production tooling
  • Archiving long-form uncompressed recordings — such as multi-hour live event audio — where AIFF's 4GB limit would split the file but CAF handles it as a single continuous stream
  • Converting AIFF voiceover or sound effect assets for use in Xcode's asset catalog, which expects CAF for uncompressed audio in app bundles

Frequently Asked Questions

No. Both pcm_s16be (the default AIFF codec) and pcm_s16le (the default CAF codec) are uncompressed 16-bit PCM — the only difference is byte order. Swapping big-endian to little-endian is a mathematical identity transformation on the audio data, not a compression or re-quantization step. The resulting CAF file is bit-for-bit equivalent in audio content to the source AIFF.
AIFF stores metadata in ID3 or MARK/NAME chunks, while CAF uses its own Information chunk format. FFmpeg does not automatically map all AIFF metadata fields into CAF's Information chunk, so some tags may be dropped during conversion. If preserving metadata is critical, you should inspect the output with a tool like afinfo (on macOS) and re-apply tags manually using a tagger that supports CAF.
The default command uses pcm_s16le, which is 16-bit. If your source AIFF was recorded at 24-bit (pcm_s24be), this default will downsample the bit depth and discard some dynamic range headroom. To preserve 24-bit resolution, change the codec flag to -c:a pcm_s24le in the FFmpeg command. For 32-bit float sources (pcm_f32be), use -c:a pcm_f32le to maintain full fidelity.
CAF is an Apple-proprietary container with limited native support outside of macOS and iOS. On Windows and Linux, most media players — including VLC — can open CAF files, but professional DAWs and standard audio tools may not recognize the format without a plugin or codec. If cross-platform compatibility is a priority, WAV (which also uses little-endian PCM and has no practical size limit with the RF64 extension) is a better target format than CAF.
Replace -c:a pcm_s16le with -c:a aac and set a bitrate with -b:a 256k, giving you: ffmpeg -i input.aiff -c:a aac -b:a 256k output.caf. CAF supports AAC natively as a container, which dramatically reduces file size at the cost of introducing lossy compression. This is useful for app assets where download size matters but lossless fidelity is not required.
On macOS or Linux, use a shell loop: for f in *.aiff; do ffmpeg -i "$f" -c:a pcm_s16le "${f%.aiff}.caf"; done. This iterates over every .aiff file in the current directory and outputs a matching .caf file with the same base name. On Windows (PowerShell), the equivalent is: Get-ChildItem *.aiff | ForEach-Object { ffmpeg -i $_.FullName -c:a pcm_s16le ($_.BaseName + '.caf') }.

Technical Notes

The AIFF format uses big-endian byte ordering inherited from the Motorola 68000 processor era, while CAF uses little-endian ordering aligned with x86 and ARM (Apple Silicon) architectures — meaning the core work of this conversion is a byte-order reversal of the raw PCM samples. The default command operates at 16-bit depth; if your source AIFF contains 24-bit (pcm_s24be) or 32-bit float (pcm_f32be) audio, you must explicitly specify -c:a pcm_s24le or -c:a pcm_f32le to avoid lossy bit-depth reduction. CAF's -b:a parameter is meaningful only when using a compressed codec like AAC or Opus; it has no effect on PCM codecs, which are always encoded at full uncompressed bitrate determined by sample rate and bit depth. CAF natively supports very large files (beyond 4GB) by using 64-bit chunk size fields, solving a hard limitation of AIFF's 32-bit size fields. However, FFmpeg's CAF muxer does not currently write the optional CAF 'Overview' or 'Peak' chunks used by some Apple tools for waveform display caching, so those will need to be regenerated by Logic Pro or Core Audio if required. Looping metadata (common in AIFF game audio files) is not carried over to CAF during this conversion.

Related Tools