Convert FLAC to CAF — Free Online Tool
Convert FLAC lossless audio files to Apple's CAF (Core Audio Format) container using PCM 16-bit encoding, producing uncompressed audio ready for use in macOS and iOS development workflows. CAF's architecture removes the 4GB file size ceiling of older Apple formats while retaining full audio fidelity at CD-quality resolution.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your FLAC file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
FLAC stores audio as losslessly compressed data — the waveform is preserved perfectly, but the bits are packed efficiently to reduce file size. During conversion to CAF, FFmpeg decodes the FLAC stream entirely back to raw PCM audio, then re-encodes it as 16-bit little-endian PCM (pcm_s16le) inside the CAF container. Because both FLAC and 16-bit PCM are lossless representations of the same underlying audio data, no quality is lost in this process. The CAF wrapper adds Apple-specific container metadata and removes the file size restrictions inherent to AIFF and WAV. The resulting file is larger than the source FLAC because PCM is uncompressed, but the audio waveform is bit-for-bit identical in terms of audible quality at 16-bit depth.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary — the open-source multimedia processing engine that handles decoding the FLAC input, converting the audio codec, and writing the CAF output. In this browser tool, FFmpeg runs locally via WebAssembly (FFmpeg.wasm) so no file ever leaves your device. |
-i input.flac
|
Specifies the input file — in this case a FLAC audio file. FFmpeg automatically detects the FLAC container and its losslessly compressed audio stream, preparing it for decoding into raw PCM before re-encoding. |
-c:a pcm_s16le
|
Sets the output audio codec to signed 16-bit little-endian PCM, which is uncompressed audio stored at CD quality resolution. This is the default and most compatible PCM variant for Apple's CAF container and is natively supported by Core Audio on macOS and iOS. |
-b:a 128k
|
Specifies a target audio bitrate of 128 kbps — however, this flag has no effect when the audio codec is PCM (pcm_s16le), because PCM bitrate is fixed by the source sample rate and bit depth rather than being configurable. FFmpeg silently ignores this parameter for lossless PCM streams. |
output.caf
|
Defines the output filename with a .caf extension, which tells FFmpeg to wrap the encoded audio in Apple's Core Audio Format container. CAF is the correct container for use with Xcode, Logic Pro, GarageBand, and Apple's Core Audio and AVFoundation frameworks. |
Common Use Cases
- Preparing lossless audio assets for an iOS or macOS app using AVFoundation or Core Audio APIs, which have native CAF support
- Supplying audio files to Logic Pro or GarageBand projects where CAF is the preferred native session format for long-form recordings
- Converting a large FLAC audiobook or multi-hour concert recording to CAF to bypass the 4GB file size limit that would block use of WAV or AIFF
- Providing game audio assets to an Xcode project that requires CAF-formatted sound effects or music tracks for use with AudioToolbox
- Archiving studio FLAC masters in a format compatible with Apple's professional audio ecosystem while retaining lossless 16-bit PCM quality
- Converting FLAC samples for use with Apple's Audio Unit plugins or AUGraph pipelines that expect PCM data inside a CAF container
Frequently Asked Questions
Not if your FLAC file was originally recorded or stored at 16-bit depth. FLAC is a lossless format, and pcm_s16le is also a lossless representation — the conversion simply decompresses the FLAC data into raw uncompressed PCM. If your FLAC source was recorded at 24-bit depth, however, you will lose the extra precision since pcm_s16le truncates to 16 bits. In that case, you could modify the FFmpeg command to use -c:a pcm_s24le to preserve the full 24-bit resolution inside the CAF container.
FLAC uses lossless compression to shrink the file, typically achieving 40–60% size reduction compared to uncompressed audio. When you convert to CAF with pcm_s16le, the audio is stored as raw uncompressed PCM with no compression applied — every sample takes exactly 2 bytes. For a stereo 44.1 kHz recording, this means roughly 10 MB per minute of audio. The CAF container itself adds negligible overhead, so the size difference is entirely due to FLAC's compression being removed.
FLAC supports rich Vorbis comment metadata and ReplayGain tags, but CAF uses a completely different metadata scheme based on Apple's chunk-based structure. FFmpeg will attempt to map common tags like artist, title, and album, but ReplayGain tags and embedded album art are unlikely to survive the conversion intact. If preserving metadata is critical, verify the output file's tags with a tool like MediaInfo or exiftool after conversion.
Yes — CAF supports FLAC as an audio codec, so you can remux the audio stream without re-encoding by changing the command to: ffmpeg -i input.flac -c:a flac output.caf. This copies the compressed FLAC data directly into the CAF wrapper, keeping file sizes small and avoiding any decoding/re-encoding step. However, FLAC-in-CAF has limited compatibility compared to PCM-in-CAF, and some Apple frameworks like AudioToolbox may not support it as broadly as native PCM.
Replace -c:a pcm_s16le with a different PCM codec to change the bit depth. Use pcm_s24le for 24-bit audio (ideal if your FLAC source was mastered at 24-bit), pcm_s32le for 32-bit integer, or pcm_f32le for 32-bit floating point — all of which CAF supports natively. For example: ffmpeg -i input.flac -c:a pcm_s24le output.caf. The -b:a 128k flag in the original command has no practical effect on PCM codecs since their bitrate is determined by sample rate and bit depth, so you can omit it when targeting PCM.
Yes, with a small shell script wrapping the command. On macOS or Linux, run: for f in *.flac; do ffmpeg -i "$f" -c:a pcm_s16le "${f%.flac}.caf"; done. On Windows Command Prompt, use: for %f in (*.flac) do ffmpeg -i "%f" -c:a pcm_s16le "%~nf.caf". This iterates over every FLAC file in the current directory and produces a matching CAF file, which is useful for converting entire music libraries or game asset folders.
Technical Notes
The CAF format was designed by Apple specifically to address the limitations of AIFF and WAV, most notably the 4GB file size cap imposed by 32-bit chunk size fields in those older formats. CAF uses 64-bit chunk sizing, making it suitable for extremely long recordings or high-sample-rate multichannel audio that would overflow WAV or AIFF. The default codec chosen here — pcm_s16le (signed 16-bit little-endian PCM) — is the most universally compatible PCM variant within Apple's audio stack, matching CD audio specifications at 44.1 kHz / 16-bit stereo. Note that CAF is an Apple-proprietary container and has virtually no support outside of macOS, iOS, and Apple development tools — attempting to play a CAF file in a standard media player on Windows or Linux will typically fail. The -b:a 128k flag present in the base command is semantically irrelevant for PCM codecs, whose bitrate is a fixed function of sample rate and bit depth rather than a tunable parameter; FFmpeg silently ignores it for PCM streams. FLAC's cue sheet and ReplayGain metadata features have no direct equivalent in CAF's chunk structure, and FFmpeg does not perform any special mapping for these fields during this conversion.