Convert CAF to AAC — Free Online Tool
Convert CAF audio files to AAC format using FFmpeg in your browser — no upload required. This tool re-encodes Apple's Core Audio Format (typically containing PCM or ALAC audio) into AAC, the lossy codec native to iTunes, iOS, and streaming platforms, making your audio universally playable outside Apple's ecosystem.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your CAF 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
CAF files often contain uncompressed PCM audio (such as pcm_s16le, the default) or other codecs like FLAC or AAC inside Apple's container. During this conversion, FFmpeg decodes whatever audio codec is inside the CAF container and re-encodes it using AAC at 128k bitrate, producing a standalone .aac file. Because CAF is a container and AAC is a raw encoded bitstream format (not a container like M4A), the output is a raw AAC elementary stream. If your CAF file already contains AAC audio, the audio is still fully decoded and re-encoded rather than stream-copied, since the target format is a raw AAC bitstream rather than a container. Any metadata embedded in the CAF file may not be preserved, as raw AAC files have limited metadata support compared to container formats like M4A or MP4.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool. In this browser-based tool, FFmpeg runs locally via WebAssembly (FFmpeg.wasm), meaning no audio data is sent to any server. |
-i input.caf
|
Specifies the input file — a CAF (Core Audio Format) file. FFmpeg will detect the container and probe the internal audio codec (commonly PCM, but potentially AAC, FLAC, or others) before decoding it. |
-c:a aac
|
Instructs FFmpeg to encode the audio stream using its built-in AAC encoder, producing lossy AAC audio regardless of what codec was inside the source CAF file — even if the source was already AAC, it is fully decoded and re-encoded. |
-b:a 128k
|
Sets the target AAC audio bitrate to 128 kilobits per second, a common default that balances file size and audio quality. For music, increasing this to 192k or 256k will produce better results; for voice content, 96k is often sufficient. |
output.aac
|
Defines the output filename with a .aac extension, causing FFmpeg to write a raw ADTS-framed AAC elementary bitstream — a format playable in most modern media players and browsers, though without container-level metadata support. |
Common Use Cases
- Preparing audio recorded on macOS or iOS (which defaults to CAF) for upload to streaming platforms like Spotify or SoundCloud that expect AAC or MP3
- Converting CAF voice memos or Logic Pro session exports to AAC for playback on Android devices or non-Apple media players
- Reducing the file size of large uncompressed PCM CAF recordings for sharing via email or messaging apps, where a lossless file would be impractically large
- Supplying AAC audio to web developers who need browser-compatible audio for HTML5 audio elements, since raw AAC is widely supported
- Converting CAF sound effects or audio assets from an Apple game or app project into AAC for use in a cross-platform game engine like Unity or Unreal
- Archiving or distributing podcast episodes originally exported as CAF from GarageBand into AAC for podcast hosting platforms
Frequently Asked Questions
Yes — if your CAF file contains uncompressed PCM audio (the most common case), converting to AAC at 128k introduces lossy compression for the first time, which will result in some quality reduction. The degree of loss depends on the source material; speech and simple audio tend to sound transparent at 128k, while complex music may benefit from 192k or 256k. If your CAF already contained a lossy codec like AAC or Opus, you are performing a generation loss re-encode, which compounds quality degradation and is best avoided if possible.
A raw .aac file is an AAC elementary bitstream without a container, while .m4a is AAC audio wrapped inside an MPEG-4 container. This tool produces a raw AAC stream, which plays fine in most modern players but lacks robust metadata support (no album art, track title, etc.). If you need full metadata support or broader compatibility with older software, consider converting to M4A instead, which wraps the same AAC audio in an MP4 container.
Replace the value after -b:a in the command. For example, to encode at 256k for higher quality, use: ffmpeg -i input.caf -c:a aac -b:a 256k output.aac. Lower values like 64k or 96k produce smaller files but more noticeable compression artifacts. For music, 192k–256k is generally recommended; for voice or podcasts, 96k–128k is usually sufficient.
The single-file command shown here processes one file at a time, but on your desktop you can batch process using a shell loop. On Linux or macOS: for f in *.caf; do ffmpeg -i "$f" -c:a aac -b:a 128k "${f%.caf}.aac"; done. On Windows Command Prompt: for %f in (*.caf) do ffmpeg -i "%f" -c:a aac -b:a 128k "%~nf.aac". This is particularly useful for batch-converting CAF exports from Xcode or Logic Pro projects.
CAF supports metadata, but raw AAC elementary streams have very limited metadata capability — most tags will be stripped during this conversion. If metadata preservation is important, you should instead convert to M4A (an MP4 container holding AAC audio), which fully supports ID3-style tags. You can do this by simply changing the output filename extension: ffmpeg -i input.caf -c:a aac -b:a 128k output.m4a.
AAC is now a universal standard supported on virtually all modern devices and platforms, including Android, Windows, Linux media players, web browsers, smart TVs, and game consoles — it is not Apple-exclusive despite its origins with iTunes. CAF, by contrast, is an Apple-proprietary container that most non-Apple software cannot play. Converting to AAC removes that compatibility barrier while keeping file sizes much smaller than the original uncompressed PCM audio in many CAF files.
Technical Notes
CAF (Core Audio Format) is a flexible Apple container that can hold a wide range of audio codecs — most commonly 16-bit or 24-bit PCM in professional and development contexts, but also AAC, FLAC, ALAC, and even Opus. The FFmpeg command targets the AAC encoder built into FFmpeg (-c:a aac), which is the native FFmpeg AAC encoder and produces good-quality output. An alternative is the libfdk_aac encoder (if available in your FFmpeg build), which is widely considered higher quality, especially at lower bitrates, and can be substituted with -c:a libfdk_aac. The output .aac file is an ADTS-framed AAC bitstream, meaning it is a raw stream rather than a containerized file. This format plays in most media players but is not ideal for embedding in video or adding rich metadata — M4A is preferable for those scenarios. If your source CAF contains multi-channel (surround) audio, be aware that the AAC encoder may down-mix or drop channels depending on your FFmpeg build and version; explicitly setting -ac 2 for stereo output is recommended if you want predictable results. Files sourced from iOS voice memos or Xcode audio assets are almost always mono or stereo and will convert without issue.