Convert AMR to CAF — Free Online Tool

Convert AMR speech recordings to CAF (Core Audio Format) for use in Apple's audio ecosystem. This tool decodes compressed AMR narrowband audio — originally encoded at bitrates as low as 4.75 kbps for mobile telephony — and re-encodes it as uncompressed PCM inside a CAF container, making it compatible with macOS, iOS, and professional Apple audio software.

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

AMR (Adaptive Multi-Rate) files store speech audio using a codec optimized for voice at extremely low bitrates (4.75–12.2 kbps), a format native to mobile networks and voice recorders. CAF, Apple's extensible audio container, does not support the AMR codec, so a full decode-and-re-encode is required. FFmpeg uses the libopencore_amrnb decoder to decompress the AMR audio stream back to raw PCM samples, then re-encodes it using the pcm_s16le codec — 16-bit signed little-endian PCM — and wraps it in a CAF container. The result is uncompressed audio at CD-quality bit depth, significantly larger in file size but fully compatible with Core Audio APIs, GarageBand, Logic Pro, and any Apple platform tool that reads CAF files.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg command-line tool, which in this browser-based tool runs as a WebAssembly (FFmpeg.wasm) instance entirely within your browser — no file data leaves your device.
-i input.amr Specifies the input file, an AMR audio file. FFmpeg detects the AMR container and selects the libopencore_amrnb decoder to decompress the narrowband speech frames encoded at bitrates between 4.75 and 12.2 kbps.
-c:a pcm_s16le Sets the audio codec for the output to 16-bit signed little-endian PCM — uncompressed audio. Since CAF does not support the AMR codec, this re-encodes the decoded speech samples into a format that Core Audio and all Apple tools can read natively without any additional codec.
-b:a 128k Specifies a target audio bitrate of 128 kbps. For uncompressed PCM output (pcm_s16le), this parameter has no practical effect since PCM bitrate is fixed by sample rate and bit depth rather than compression — it is included here as a no-op default from the tool's configuration and can be safely omitted when running the command manually.
output.caf Defines the output file with a .caf extension, instructing FFmpeg to wrap the decoded and re-encoded PCM audio stream in Apple's Core Audio Format container — the standard uncompressed audio container for macOS and iOS development environments.

Common Use Cases

  • Importing voice memos recorded on older Nokia or feature phones (which saved audio as .amr) into GarageBand or Logic Pro on a Mac for music or podcast production.
  • Converting interview recordings captured on Android devices in AMR format into CAF for use in an iOS app's audio asset bundle, where CAF is the preferred uncompressed format.
  • Archiving forensic voice recordings originally stored as AMR — common in call center logs — into uncompressed CAF for long-term preservation without codec dependency.
  • Preparing speech samples from AMR-format telephony recordings for use with macOS speech analysis or transcription tools that require Core Audio-compatible input.
  • Converting AMR voicemail exports from VoIP systems into CAF files for editing in an Apple audio workflow before embedding in a multimedia project.
  • Decoding AMR files from embedded systems or IoT devices (which use AMR for compact voice transmission) into full-fidelity CAF for review and quality analysis on macOS.

Frequently Asked Questions

No — and this is an important distinction. AMR is a lossy codec, meaning audio quality is permanently reduced at the point of original encoding. Converting to CAF with pcm_s16le produces an uncompressed file, but it is an uncompressed copy of already-lossy audio. The speech artifacts and limited frequency range (AMR narrowband covers roughly 200–3400 Hz) are preserved in the output. The CAF file will simply be a higher-fidelity container for the same quality audio that was in the AMR file.
AMR was designed specifically for mobile telephony and achieves tiny file sizes through aggressive lossy compression — a one-minute AMR file at 12.2 kbps is only about 90 KB. The pcm_s16le codec used in the CAF output is completely uncompressed, producing roughly 1.4 MB per minute at a standard 44.1 kHz sample rate, or about 960 KB per minute at 8 kHz (the typical AMR sample rate). This size increase is expected and normal; the CAF format trades storage efficiency for broad compatibility with Apple's audio tools.
AMR files carry very minimal metadata — typically just basic header information like the codec mode and frame structure, with no standardized fields for artist, title, or recording date. CAF supports rich metadata chunks, but since the source AMR file contains none, the output CAF file will also have no embedded metadata tags. If you need to add metadata (for example, speaker name or recording date) you would need to do so after conversion using a tool like afinfo or a DAW.
Yes. CAF supports multiple codecs including AAC, FLAC, Opus, Vorbis, and several PCM variants. To use AAC for a compressed but higher-quality output, you would change the command to: ffmpeg -i input.amr -c:a aac -b:a 128k output.caf. For lossless storage, FLAC is also supported: ffmpeg -i input.amr -c:a flac output.caf. The default pcm_s16le choice produces the most universally compatible CAF file for Apple tools, but AAC is appropriate if file size is a concern.
The -b:a 128k flag sets a target bitrate, but for uncompressed PCM (pcm_s16le) bitrate is determined by sample rate and bit depth rather than a compression setting — so that flag has no meaningful effect with PCM output. To control output quality, instead specify a sample rate with -ar, for example: ffmpeg -i input.amr -c:a pcm_s16le -ar 44100 output.caf to upsample from the typical 8 kHz AMR rate to 44.1 kHz, or -ar 8000 to keep the native telephony sample rate and minimize file size. Note that upsampling does not recover lost high-frequency content from the original lossy AMR encoding.
On macOS or Linux, you can use a shell loop: for f in *.amr; do ffmpeg -i "$f" -c:a pcm_s16le "${f%.amr}.caf"; done. This iterates over every .amr file in the current directory and creates a corresponding .caf file with the same base name. On Windows (PowerShell), the equivalent is: Get-ChildItem *.amr | ForEach-Object { ffmpeg -i $_.FullName -c:a pcm_s16le ($_.BaseName + '.caf') }. This is especially useful for processing large archives of mobile voice recordings exported from a phone or VoIP system.

Technical Notes

AMR narrowband (AMR-NB), the default codec in AMR files and decoded here via libopencore_amrnb, operates at a fixed 8 kHz sample rate — a deliberate design choice for telephone-quality speech that intentionally discards frequencies above ~3.4 kHz. When FFmpeg decodes this into PCM for the CAF container, the output inherits that 8 kHz sample rate unless you explicitly resample with -ar. If you plan to use the CAF file in a project with a 44.1 kHz or 48 kHz session (standard for music or broadcast production), it is worth resampling at conversion time to avoid issues with sample rate mismatches in your DAW. The pcm_s16le codec chosen for the CAF output is a 16-bit signed little-endian format, which is the standard for CD-quality audio; CAF also supports 24-bit (pcm_s24le) and 32-bit float (pcm_f32le) variants if you need a higher bit depth for subsequent processing. One known limitation: AMR-WB (Adaptive Multi-Rate Wideband, using the libopencore_amrwb decoder) covers a wider 16 kHz frequency range and is sometimes used in HD Voice calls — if your source is an AMR-WB file, the same FFmpeg command applies, but you should expect a 16 kHz sample rate in the decoded output. CAF has no support for multiple audio tracks, subtitles, or chapters, which aligns with the single-stream nature of the AMR source.

Related Tools