Convert AMR to AAC — Free Online Tool

Convert AMR audio files to AAC format, transcoding speech-optimized mobile recordings encoded with libopencore_amrnb or libopencore_amrwb into broadly compatible AAC audio at 128kbps. This is ideal for repurposing voice memos, call recordings, and mobile speech files for playback on modern devices, streaming platforms, and iTunes-compatible ecosystems.

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) is a narrow, speech-focused codec operating at very low bitrates — as low as 4.75kbps — designed for GSM and mobile telephony where bandwidth is scarce. During this conversion, FFmpeg decodes the AMR audio stream using the libopencore_amrnb decoder, fully decompressing the speech-optimized bitstream into raw PCM audio. That PCM data is then re-encoded from scratch using AAC's aac encoder at 128kbps. Because AMR and AAC are fundamentally different codecs with no shared container or stream compatibility, a full decode-and-reencode is unavoidable. The dramatic jump in bitrate — from a typical AMR ceiling of 12.2kbps to AAC's default 128kbps — gives the encoder more room to represent the audio signal, though the recoverable quality is ultimately bounded by what the original AMR encoding preserved.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary. In this browser-based tool, FFmpeg runs locally via WebAssembly (FFmpeg.wasm) — no file data leaves your device.
-i input.amr Specifies the input AMR file. FFmpeg detects the AMR container and automatically selects the libopencore_amrnb decoder to demux and decode the speech-compressed audio stream.
-c:a aac Instructs FFmpeg to re-encode the audio stream using the built-in AAC encoder, producing an Advanced Audio Coding bitstream suitable for playback on iOS, Android, web browsers, and iTunes-compatible software.
-b:a 128k Sets the AAC output bitrate to 128kbps. This is roughly 10 times the maximum bitrate of AMR-NB (12.2kbps), giving the AAC encoder ample headroom to represent the decoded speech signal without introducing further compression artifacts.
output.aac Defines the output filename and container. The .aac extension tells FFmpeg to write a raw AAC bitstream file. To produce an iTunes-compatible file with tagging support, change this to output.m4a.

Common Use Cases

  • Converting voice memos recorded on older Nokia or feature phones (which saved audio as .amr files) into AAC for playback in Apple Music, iTunes, or on iOS devices
  • Repurposing mobile call recordings or voicemail exports saved in AMR format for upload to podcast hosting platforms that require AAC or M4A audio
  • Transcoding AMR speech recordings from field interviews or dictation devices into AAC so they can be edited in audio workstations like GarageBand or Logic Pro, which natively support AAC but not AMR
  • Preparing AMR voice messages downloaded from messaging apps for playback in web browsers or media players that lack AMR codec support
  • Converting AMR audio attachments from enterprise telephony or IVR systems into AAC for archival in media management systems that index AAC files
  • Sharing voice notes originally recorded on Android devices (which default to AMR-NB) with iOS or macOS users who cannot play AMR files natively

Frequently Asked Questions

Not beyond what the original AMR encoding preserved. AMR is a lossy codec, and the speech data discarded during the original AMR encoding cannot be recovered during conversion. What the AAC re-encoding does is give the encoder more bitrate headroom (128kbps vs. AMR's 4.75–12.2kbps ceiling) to faithfully represent what remains in the AMR file. The result will be an AAC file that sounds identical or very close to the AMR source — without the artifacts of further compression — but you won't regain frequencies or detail that AMR originally stripped out.
This is expected. AMR was engineered specifically for mobile telephony and operates at extremely low bitrates — the highest AMR-NB mode is only 12.2kbps. The default AAC output in this tool uses 128kbps, which is roughly 10 times higher. Since file size scales directly with bitrate and duration, a 1-minute AMR file at 12.2kbps (~90KB) will expand to roughly 960KB as a 128kbps AAC file. If file size is a concern, you can lower the AAC bitrate to 64kbps or 96kbps — speech content remains highly intelligible at those rates in AAC.
AMR files have extremely limited metadata support — the format was designed for telephony, not media libraries, and typically carries no ID3-style tags at all. As a result, there is generally no title, artist, or album metadata to transfer to the output AAC file. If you need to add metadata to the resulting AAC file, you would do so after conversion using a tag editor or by adding FFmpeg -metadata flags to the command.
Modify the -b:a flag in the command. For example, to encode at 64kbps (sufficient for speech), use: ffmpeg -i input.amr -c:a aac -b:a 64k output.aac. For higher fidelity at 192kbps, use -b:a 192k. For voice recordings sourced from AMR, bitrates above 128kbps yield diminishing returns because the AMR source itself was captured at no more than 12.2kbps — the AAC encoder cannot invent detail that wasn't there. A range of 64k–96k is often the practical sweet spot for this specific source format.
Yes. On Linux or macOS, you can use a shell loop: for f in *.amr; do ffmpeg -i "$f" -c:a aac -b:a 128k "${f%.amr}.aac"; done. On Windows Command Prompt, use: for %f in (*.amr) do ffmpeg -i "%f" -c:a aac -b:a 128k "%~nf.aac". This is particularly useful if you have a large archive of mobile voice recordings or call logs all in AMR format that need to be converted in bulk.
AMR-NB (Narrowband) encodes audio up to 3.4kHz bandwidth at bitrates from 4.75kbps to 12.2kbps and is the most common variant found in .amr files from older mobile devices. AMR-WB (Wideband), sometimes stored as .awb, extends the frequency range to 7kHz and offers noticeably better speech clarity. FFmpeg supports both via libopencore_amrnb and libopencore_amrwb respectively, and this tool can decode either for conversion to AAC. If your source is an AMR-WB file, the broader frequency content will be preserved in the AAC output, resulting in noticeably better audio quality than a conversion from AMR-NB.

Technical Notes

AMR-NB, the default codec in .amr files, samples audio at 8kHz — a rate chosen to capture the fundamental frequencies of human speech (roughly 300Hz–3400Hz) while discarding music, environmental sound, and most harmonic richness. When this audio is decoded to PCM and fed to the AAC encoder, the encoder can only work with what the 8kHz sample rate captured; AAC cannot upsample or hallucinate content above 4kHz. The output AAC file will therefore have a hard spectral ceiling around 4kHz despite being encoded at 128kbps. This means AMR-to-AAC conversions are appropriate for voice intelligibility and compatibility — not audio fidelity restoration. The FFmpeg aac encoder used here is the native built-in AAC encoder; if your local FFmpeg build includes libfdk_aac, substituting -c:a libfdk_aac can yield marginally better quality at low bitrates, which matters more for music than for speech. AMR files also do not support multiple audio tracks, chapters, or subtitles, so no stream selection logic is needed. The conversion produces a raw .aac bitstream file; if you need the AAC audio wrapped in an M4A or MP4 container (required for iTunes tagging or chapter support), change the output filename extension to .m4a in the FFmpeg command.

Related Tools