Convert WAV to CAF — Free Online Tool

Convert WAV audio files to Apple's Core Audio Format (CAF) directly in your browser, preserving full PCM fidelity using the pcm_s16le codec. CAF overcomes WAV's 4GB file size limit and is natively supported across macOS and iOS, making it the preferred container for large or high-resolution audio projects in the Apple ecosystem.

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

WAV and CAF both support uncompressed PCM audio, so this conversion is effectively a container remux rather than a re-encoding of the audio data. The raw pcm_s16le audio stream from the WAV file is lifted out and placed into a CAF wrapper without altering the sample values. The key technical change is the container itself: CAF uses a chunk-based structure that supports files larger than 4GB (WAV is limited by its 32-bit header), and it embeds richer metadata natively compatible with Apple's CoreAudio framework. No lossy compression is applied, so there is no audible quality change between the input WAV and the output CAF.

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 compiled to WebAssembly) and on the desktop command line.
-i input.wav Specifies the input file as a WAV container. FFmpeg reads the WAV header to detect the audio codec (in this case pcm_s16le by default) and stream properties such as sample rate and channel count before processing begins.
-c:a pcm_s16le Sets the audio codec for the output to 16-bit signed little-endian PCM — the same uncompressed format used by default in the source WAV file. This ensures the conversion is a lossless container remux: the audio samples themselves are not re-encoded or altered in any way.
-b:a 128k Nominally sets a 128k audio bitrate target, but this flag has no effect when writing pcm_s16le because uncompressed PCM bitrate is fixed by the file's sample rate and bit depth (e.g., 44100 Hz stereo 16-bit PCM is always 1411 kbps). FFmpeg silently ignores this parameter for PCM codecs.
output.caf Defines the output file as a CAF container. FFmpeg infers the CAF format from the .caf extension and writes the PCM audio stream into Apple's Core Audio Format wrapper, which supports 64-bit file sizes and is natively readable by macOS and iOS CoreAudio APIs.

Common Use Cases

  • Preparing large uncompressed audio sessions for Logic Pro X or GarageBand, which natively read CAF and benefit from its support for files exceeding WAV's 4GB ceiling
  • Converting WAV field recordings or multi-take studio captures that exceed 4GB into CAF so they can be loaded into Apple's AVFoundation or CoreAudio APIs without file-size errors
  • Supplying iOS game audio assets in CAF format, which is the format Apple historically recommended for low-latency sound playback in SpriteKit and SceneKit projects
  • Archiving broadcast-quality WAV masters into CAF containers for macOS-based post-production pipelines while keeping the audio bit-perfect and uncompressed
  • Converting WAV podcast stems or voiceover takes into CAF for editing in Apple's Podcast Producer or other macOS-native audio tools that prefer the CAF container
  • Testing CoreAudio integration by generating CAF reference files from known-good WAV sources to validate audio decoding behavior in macOS or iOS applications

Frequently Asked Questions

No. Both WAV and CAF support pcm_s16le (16-bit signed little-endian PCM), so the audio samples are copied byte-for-byte into the new container without any re-encoding or lossy compression. The conversion is mathematically lossless — a null test between the input and output would produce silence. The only change is the file wrapper and its associated metadata structure.
The primary practical reason is CAF's removal of the 4GB file size limit that affects standard WAV files. A 24-bit/192kHz stereo WAV recording hits 4GB in roughly 2.5 hours, after which the file header can no longer describe the data correctly. CAF uses 64-bit chunk sizing so it handles arbitrarily large files. CAF is also natively understood by macOS and iOS at the OS level through CoreAudio, which can mean lower-latency access and better metadata support in Apple-native workflows.
Basic technical metadata such as sample rate, channel count, and bit depth are preserved because they are properties of the PCM stream itself and are re-embedded in the CAF container's audio description chunk. However, ID3 or INFO chunk text metadata (artist, title, comment tags) that may exist in the WAV file may not be fully transferred, as CAF uses its own distinct metadata chunk structure. For critical metadata, verify the output file with a tool like MediaInfo after conversion.
CAF is an Apple-native format and lacks broad support outside the Apple ecosystem. Most Windows audio applications, including Audacity (without plugins), Adobe Premiere, and standard media players, do not natively open CAF files. FFmpeg itself can decode CAF, so command-line workflows on any platform remain feasible, but for cross-platform distribution you should stick with WAV or convert to a format like FLAC or AIFF instead.
Replace '-c:a pcm_s16le' with '-c:a aac' and set a bitrate with '-b:a 256k', giving you: 'ffmpeg -i input.wav -c:a aac -b:a 256k output.caf'. CAF supports AAC, FLAC, Opus, Vorbis, and several PCM variants. Switching to AAC introduces lossy compression but dramatically reduces file size, which is useful for iOS app audio assets where storage is a concern. FLAC ('-c:a flac') gives you lossless compression with a smaller file than uncompressed PCM.
The single-file command shown is not directly batch-capable, but you can wrap it in a shell loop. On macOS or Linux: 'for f in *.wav; do ffmpeg -i "$f" -c:a pcm_s16le "${f%.wav}.caf"; done'. On Windows PowerShell: 'Get-ChildItem *.wav | ForEach-Object { ffmpeg -i $_.FullName -c:a pcm_s16le ($_.BaseName + ".caf") }'. The in-browser tool processes one file at a time, so the FFmpeg command is especially useful for bulk conversions on your local machine.

Technical Notes

Both WAV and CAF natively support pcm_s16le, making this one of the cleanest container-swap conversions FFmpeg performs — the codec flags instruct FFmpeg to write PCM rather than attempt any transcoding. CAF's internal structure uses a 'desc' chunk to define the audio format and a 'data' chunk for the raw samples, analogous to WAV's 'fmt ' and 'data' chunks but with 64-bit size fields that eliminate the 4GB ceiling. One known limitation is that CAF's channel layout chunk ('chan') uses Apple-defined channel labels which may not map one-to-one with WAV's WAVEFORMATEXTENSIBLE speaker mask for unusual multichannel configurations; stereo and mono files are unaffected. The '-b:a 128k' flag in the command has no practical effect when the codec is pcm_s16le (PCM bitrate is determined entirely by sample rate and bit depth, not a target bitrate parameter), but it is included for structural consistency with the tool's output template. FFmpeg will ignore it gracefully. If you need a smaller CAF file, switch to '-c:a flac' for lossless compression or '-c:a aac -b:a 192k' for lossy compression rather than adjusting the bitrate flag on a PCM codec.

Related Tools