Convert AMR to M4A — Free Online Tool

Convert AMR audio files to M4A format by re-encoding the narrow-band or wide-band AMR speech codec into AAC — a far more universally compatible audio codec suited for music players, podcasts, and Apple devices. This is ideal for transforming mobile voice recordings into a format that plays natively in iTunes, QuickTime, and modern browsers.

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) audio is a lossy speech codec designed for extremely low bitrates in mobile telephony — typically 4.75 kbps to 12.2 kbps. Because AMR is a fundamentally different codec from anything the M4A container supports, this conversion cannot be a simple remux: FFmpeg must fully decode the AMR bitstream using the libopencore_amrnb decoder, then re-encode the raw PCM audio into AAC at 128 kbps, and finally wrap it in an MPEG-4 audio-only container with the .m4a extension. The result is a significant jump in bitrate and a shift from a speech-tuned codec to a general-purpose perceptual audio codec, meaning music and ambient sounds will be reproduced far more faithfully, but the original narrow-band speech quality ceiling (typically 8 kHz sample rate for AMR-NB) cannot be recovered — the new file will sound exactly as good as the source AMR allowed.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg program — the open-source multimedia processing engine running here as a WebAssembly binary in your browser. All conversion, decoding, and encoding logic is executed client-side using this tool.
-i input.amr Specifies the input file in AMR format. FFmpeg automatically detects whether it is AMR-NB or AMR-WB from the file header and selects the appropriate libopencore decoder accordingly.
-c:a aac Sets the audio codec for the output to AAC (Advanced Audio Coding), which is the native and most compatible codec for the M4A container. AAC is a general-purpose perceptual codec that replaces the speech-specialized AMR codec with one understood by iTunes, QuickTime, iOS, Android, and all modern browsers.
-b:a 128k Sets the AAC audio bitrate to 128 kbps. This is the default and represents a significant increase over AMR's maximum of 12.2 kbps, but since the source audio is narrow-band speech, the perceptible quality ceiling is already set by the AMR recording — 128k ensures the encoded AAC faithfully represents everything the source contained.
-vn Explicitly disables any video stream in the output. M4A is an audio-only container, and this flag ensures FFmpeg does not attempt to include a video track — required because some AMR files may be embedded inside 3GP containers that carry a video stream.
output.m4a Defines the output filename with the .m4a extension, which signals to FFmpeg to use the MPEG-4 audio container format. The resulting file will be playable in iTunes, QuickTime, iOS, and any AAC-capable media player without additional codecs.

Common Use Cases

  • Converting voice memos recorded on older Nokia, Samsung, or feature phones that saved calls and recordings in .amr format so they can be played on an iPhone or Mac without installing special codecs.
  • Preparing archived mobile voice recordings for import into podcast editing software like GarageBand or Audacity, which handle M4A/AAC far more readily than AMR.
  • Uploading spoken-word recordings to iTunes or Apple Podcasts, which require audio in an MPEG-4 compatible format such as M4A with AAC encoding.
  • Converting court or field interview recordings captured on AMR-capable devices into M4A so they can be attached to documents, shared via email, or embedded in presentations without compatibility issues.
  • Migrating a library of old AMR voice notes from a backed-up SIM card or feature phone to a modern smartphone or cloud storage service that does not support the AMR format.
  • Producing a clean, universally playable audio file from an AMR voicemail export so it can be played directly in a web browser or media player without additional plugins.

Frequently Asked Questions

No — converting from AMR to M4A with AAC encoding cannot recover audio information that was discarded when the original AMR file was created. AMR-NB captures audio at only 8 kHz (versus 44.1 kHz for typical music), so speech will still sound narrow and telephone-like after conversion. What you gain is vastly better compatibility: the AAC codec inside the M4A container is understood by virtually every modern device and media player, whereas AMR is not. Think of it as repackaging the existing quality into a universally playable form, not an enhancement.
AMR was specifically engineered for the smallest possible file size in mobile telephony, operating at bitrates as low as 4.75 kbps. The FFmpeg command converts to AAC at 128 kbps by default — roughly 10 to 25 times higher — because AAC at very low bitrates sounds significantly worse than AMR for speech when used as a general-purpose codec. The larger file size reflects this bitrate increase and is a normal, expected result of moving from a speech-specialized codec to a general-purpose one designed for broader audio content.
FFmpeg handles both AMR-NB and AMR-WB automatically using libopencore_amrnb and libopencore_amrwb respectively — it detects the variant from the file itself, so the same command works for both. AMR-WB files capture audio at 16 kHz instead of 8 kHz, which means your converted M4A will sound noticeably cleaner and less telephone-like compared to an AMR-NB source. The output command remains identical; the quality difference comes from the source file's bandwidth, not the conversion process.
AMR files carry very minimal metadata — typically none beyond what the recording application embeds, and there is no standardized tagging scheme for AMR the way ID3 tags exist for MP3. During conversion, FFmpeg will pass through any metadata it can parse, but in practice most AMR files arrive with no embedded tags. The M4A container fully supports iTunes-style metadata (title, artist, album, date), so you can freely add or edit tags after conversion using a tool like MP3Tag, MusicBrainz Picard, or iTunes itself.
Replace the '128k' value in the '-b:a 128k' flag with your desired bitrate. For voice-only content converted from AMR-NB, 64k is often more than sufficient and cuts the file size roughly in half — since the source audio only contains 8 kHz speech, encoding at 128k provides headroom that yields no audible benefit. For AMR-WB sources at 16 kHz, 96k is a reasonable middle ground. Supported values in this tool are 64k, 96k, 128k, 192k, 256k, and 320k. For example: ffmpeg -i input.amr -c:a aac -b:a 64k -vn output.m4a
Yes. On Linux or macOS, you can loop over all AMR files in a directory with a single shell command: for f in *.amr; do ffmpeg -i "$f" -c:a aac -b:a 128k -vn "${f%.amr}.m4a"; done. On Windows Command Prompt, use: for %f in (*.amr) do ffmpeg -i "%f" -c:a aac -b:a 128k -vn "%~nf.m4a". This is particularly useful when migrating a large archive of mobile voice recordings, since the browser-based tool processes files individually.

Technical Notes

AMR-NB (Narrow-Band) operates at a fixed 8000 Hz sample rate with mono audio, while AMR-WB (Wide-Band) uses 16000 Hz mono — both are fundamentally speech-optimized codecs standardized by 3GPP for GSM and UMTS telephony. Neither variant supports stereo audio or music fidelity. When FFmpeg decodes AMR and re-encodes to AAC inside an M4A container, it uses Apple's native AAC encoder (or libfdk_aac if available in your build) and preserves the mono channel configuration. The output sample rate is typically upsampled to 44100 Hz by the AAC encoder, which does not add audio information but ensures compatibility with all players. The M4A container (an MPEG-4 Part 14 file restricted to audio-only streams, enforced here by the -vn flag) supports chapters and iTunes metadata atoms, though these will be absent unless added post-conversion. One important limitation: FFmpeg's libopencore_amrnb and libopencore_amrwb decoders are read-only — they can decode AMR but not encode it — which is why this conversion is strictly one-directional in most FFmpeg builds. Files containing AMR audio within a 3GP container (common on Android) use the same codec and can be processed identically by renaming or passing the 3GP file directly to the same command.

Related Tools