Convert AIF to CAF — Free Online Tool

Convert AIF files to CAF (Core Audio Format) directly in your browser, transcoding Apple's big-endian PCM audio into CAF's little-endian PCM container — Apple's modern format built to handle files larger than 4GB that would otherwise overflow AIF's size limit.

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

AIF stores uncompressed audio using big-endian PCM encoding (pcm_s16be, pcm_s24be, etc.), which is a legacy byte-ordering convention from older Motorola-based Macs. CAF uses little-endian PCM (pcm_s16le), matching modern Intel and Apple Silicon architectures. During this conversion, FFmpeg reads the AIF container and its big-endian PCM stream, then re-encodes the audio samples into little-endian PCM and wraps them in a CAF container. This is a lossless byte-order transformation — no audio quality is lost — but it does require re-encoding every sample rather than a simple stream copy, since the byte order differs between formats. The resulting CAF file carries the same 16-bit audio depth as the source but gains CAF's architectural advantages: no 4GB file size ceiling, better integration with CoreAudio APIs on macOS and iOS, and support for a wider range of codecs if you choose to re-encode further.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool, which runs entirely in your browser via WebAssembly (FFmpeg.wasm) — no server upload occurs. On your desktop, this calls your locally installed FFmpeg binary.
-i input.aif Specifies the input AIF file. FFmpeg reads the AIFF container and identifies the audio stream, which is typically pcm_s16be (big-endian 16-bit PCM) as defined by the AIFF specification.
-c:a pcm_s16le Sets the output audio codec to pcm_s16le — little-endian 16-bit PCM, which is the native PCM encoding for CAF and aligns with the byte ordering used by modern Intel and Apple Silicon hardware. This converts the byte order from AIF's big-endian PCM without changing bit depth or sample values.
-b:a 128k Specifies a target audio bitrate of 128k. For uncompressed PCM codecs like pcm_s16le, the actual bitrate is fixed by the sample rate and bit depth rather than this parameter, so this flag has no practical effect on PCM output — it becomes relevant only if you switch to a compressed codec like AAC.
output.caf Defines the output filename and tells FFmpeg to write a CAF (Core Audio Format) container. FFmpeg infers the container format from the .caf extension, wrapping the pcm_s16le audio stream in Apple's modern CAF structure, which supports files larger than 4GB.

Common Use Cases

  • Converting large AIF recordings (live concerts, multi-hour sessions) that approach or exceed the 4GB AIFF file size limit into CAF, which has no such ceiling
  • Preparing audio assets for iOS or macOS app development where the CoreAudio framework and Xcode asset pipelines prefer CAF over legacy AIF files
  • Migrating a Pro Tools or Logic Pro session archive of AIF stems into CAF for long-term storage, gaining modern Apple platform compatibility without any quality loss
  • Converting AIF samples from older hardware samplers into CAF for use in GarageBand or MainStage, where CAF files load more efficiently
  • Processing AIF field recordings captured on portable recorders into CAF for delivery to a post-production pipeline that requires CoreAudio-native formats
  • Archiving high-resolution AIF masters into CAF to consolidate a sample library that will be exclusively used within the Apple ecosystem

Frequently Asked Questions

No — this conversion is lossless in terms of audio fidelity. Both the AIF source (pcm_s16be) and the CAF output (pcm_s16le) are uncompressed 16-bit PCM; the only difference is byte order. FFmpeg simply reverses the byte ordering of each audio sample from big-endian to little-endian without changing the sample values, bit depth, sample rate, or channel count. The resulting CAF file is mathematically identical in audio content to the original AIF.
AIF was developed by Apple in the late 1980s for Motorola 68000-based Macs, which used big-endian byte ordering — the most significant byte stored first. CAF was introduced in 2005 alongside the transition to Intel processors, which are little-endian, so Apple designed CAF to use pcm_s16le as its native PCM format for better CPU efficiency. Today, Apple Silicon Macs can handle both, but CoreAudio internally operates little-endian, making CAF the more efficient choice for native Apple development.
Sample rate, bit depth, and channel layout are always preserved since these are encoded in the audio stream itself. However, text metadata like artist name or track title may not carry over fully, as AIF stores metadata in MARK and NAME chunks while CAF uses its own information chunk structure. For production audio where metadata matters, verify the output file's tags in an application like Fission or MediaInfo after conversion.
Because both formats store uncompressed 16-bit PCM audio, file size is determined almost entirely by the audio duration, sample rate, and channel count — not the container format. A stereo 44.1kHz 16-bit AIF and the equivalent CAF will be virtually identical in size (around 10MB per minute). If you need a significantly smaller CAF file, you would need to re-encode to a compressed codec like AAC or FLAC, both of which CAF supports.
Replace '-c:a pcm_s16le' with '-c:a aac' for lossy AAC compression or '-c:a flac' for lossless FLAC compression inside a CAF container. For AAC, you should also set a bitrate with '-b:a 256k' (e.g., 'ffmpeg -i input.aif -c:a aac -b:a 256k output.caf'). FLAC in CAF gives you lossless compression with roughly 40–60% smaller file sizes than uncompressed PCM, while AAC will reduce file size dramatically at the cost of some audio quality.
Yes — on macOS or Linux, you can use a shell loop: 'for f in *.aif; do ffmpeg -i "$f" -c:a pcm_s16le "${f%.aif}.caf"; done'. On Windows Command Prompt, use 'for %f in (*.aif) do ffmpeg -i "%f" -c:a pcm_s16le "%~nf.caf"'. This processes every AIF file in the current directory and outputs a corresponding CAF file with the same base filename. The browser tool handles single files, so the command-line approach is ideal for batch workflows.

Technical Notes

The core technical challenge of AIF-to-CAF conversion is the endianness mismatch between the two formats' native PCM encodings. AIF's pcm_s16be stores the high byte of each 16-bit sample first, while CAF's pcm_s16le stores the low byte first; FFmpeg handles this swap automatically. If your source AIF file uses a higher bit depth (pcm_s24be or pcm_s32be), you may want to change the output codec to pcm_s24le or pcm_s32le accordingly to preserve that extra dynamic range rather than dithering down to 16-bit. CAF supports bit depths up to 32-bit float (pcm_f32le) and is the only Apple container format without a file size limit — AIFF is capped at approximately 4GB, which equates to roughly 6.5 hours of CD-quality stereo audio, a real constraint for long recordings. CAF also natively supports non-interleaved audio and is the required format for certain CoreAudio streaming APIs in iOS and macOS development. Note that CAF files are not universally supported outside the Apple ecosystem — Windows DAWs and non-Apple media players may not recognize them — so CAF is best chosen when the destination workflow is explicitly Apple-platform-based.

Related Tools