Convert M4A to AMR — Free Online Tool
Convert M4A audio files to AMR format using the libopencore_amrnb codec, optimized for speech encoding and mobile telephony. This tool is ideal for compressing voice recordings or podcast audio into the ultra-low-bitrate AMR format used by GSM phones and embedded voice systems.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your M4A 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
During this conversion, FFmpeg decodes the AAC audio stream inside the M4A container and re-encodes it using the libopencore_amrnb (Adaptive Multi-Rate Narrowband) codec. AMR-NB is a speech-specific codec that operates at a fixed 8 kHz sample rate and mono channel, so any stereo or high-sample-rate M4A audio will be automatically downmixed to mono and resampled to 8 kHz during the process. The resulting .amr file is a raw AMR stream — not wrapped in a container like MP4 — and is highly compressed, typically producing files far smaller than the original M4A. This re-encoding is lossy and irreversible: AMR is tuned for intelligibility of human speech, not music fidelity, so non-speech content will sound noticeably degraded.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool. In the browser-based version of this tool, FFmpeg runs as a WebAssembly (wasm) binary entirely within your browser — no files are sent to a server. |
-i input.m4a
|
Specifies the input file, an M4A container holding AAC-encoded audio (and potentially chapters or iTunes metadata). FFmpeg will decode the AAC stream from the M4A before passing it to the AMR encoder. |
-c:a libopencore_amrnb
|
Selects the libopencore_amrnb encoder to produce AMR Narrowband audio — the standard 3GPP speech codec used in GSM mobile telephony. This encoder enforces 8 kHz mono output regardless of the input sample rate or channel count. |
-b:a 12200
|
Sets the AMR-NB bitrate to 12,200 bits per second (12.2 kbps), which is the highest available AMR-NB mode and produces the best speech quality the codec can deliver. This value must be one of the eight fixed AMR-NB bitrate modes; arbitrary values are not supported. |
output.amr
|
Specifies the output filename with the .amr extension. This produces a raw AMR bitstream file compatible with mobile phones, 3GPP-compliant players, and telecom systems. The .amr extension is recognized by most AMR-capable playback software. |
Common Use Cases
- Converting voice memos recorded on an iPhone (saved as M4A) into AMR for playback on older GSM mobile phones or feature phones that only support AMR audio
- Preparing spoken-word audio or interview recordings for upload to telephony systems, IVR platforms, or embedded devices that require AMR-NB input
- Reducing the file size of long voice recordings — such as dictation or meeting notes — for storage on memory-constrained devices where AMR's low bitrate (as low as 4.75 kbps) is a practical necessity
- Archiving or exchanging voice messages with systems that use AMR as their native format, such as certain Android voice message apps or VoIP platforms
- Stripping out high-quality music encoding from an M4A audiobook or podcast and producing a speech-optimized AMR version for playback on a low-end device with limited audio hardware
- Generating AMR audio assets for integration into mobile applications or telecom workflows that require the standard 3GPP AMR-NB format
Frequently Asked Questions
No — AMR is specifically designed for human speech, not music. The codec operates at 8 kHz (narrowband), which cuts off all audio above 4 kHz, eliminating most of the harmonic content that makes music sound full. Stereo M4A files will also be collapsed to mono. If your M4A contains music, the AMR output will sound muffled and thin. This conversion is only recommended for voice recordings where intelligibility is the priority, not audio quality.
AMR-NB (libopencore_amrnb) is hardcoded to 8,000 Hz mono — this is a fundamental constraint of the codec, not a setting you can change. M4A files typically carry AAC audio at 44,100 Hz or 48,000 Hz stereo. FFmpeg automatically resamples and downmixes the audio during conversion to meet AMR-NB's requirements. If you need a wider audio bandwidth, AMR-WB (wideband) supports 16,000 Hz and can be used by switching to the libopencore_amrwb codec, though it is still narrowband compared to the original M4A.
All metadata is lost. M4A supports iTunes-style tags (artist, album, cover art), chapter markers, and gapless playback metadata — but the AMR format is a raw codec stream with no container structure capable of holding this information. The output .amr file will contain only the re-encoded audio. If preserving metadata is important, keep your original M4A file as the master copy.
Replace the value after -b:a in the command. AMR-NB supports only specific fixed bitrates defined by the standard: 4750, 5150, 5900, 6700, 7400, 7950, 10200, and 12200 (bits per second). For example, to use the lowest bitrate for maximum compression, change the command to: ffmpeg -i input.m4a -c:a libopencore_amrnb -b:a 4750 output.amr. Note that lower bitrates reduce file size but can make speech harder to understand. The default of 12200 bps (12.2 kbps) provides the best AMR-NB quality.
Yes, using a shell loop. On Linux or macOS, run: for f in *.m4a; do ffmpeg -i "$f" -c:a libopencore_amrnb -b:a 12200 "${f%.m4a}.amr"; done. On Windows Command Prompt, use: for %f in (*.m4a) do ffmpeg -i "%f" -c:a libopencore_amrnb -b:a 12200 "%~nf.amr". This is particularly useful for processing large batches of voice recordings or dictation files. The browser-based tool handles one file at a time, so the command-line approach is more efficient for bulk conversions.
AMR-NB (Narrowband, libopencore_amrnb) encodes audio at 8 kHz and bitrates up to 12.2 kbps — it is the original AMR format used in 2G/GSM telephony and is the most universally compatible option for legacy mobile devices. AMR-WB (Wideband, libopencore_amrwb) encodes at 16 kHz and supports higher bitrates up to 23.85 kbps, giving noticeably clearer speech. To use AMR-WB, change the command to: ffmpeg -i input.m4a -c:a libopencore_amrwb -b:a 23850 output.awb. Use AMR-NB if you need compatibility with older devices or systems, and AMR-WB if speech clarity is more important than maximum compatibility.
Technical Notes
AMR-NB imposes strict technical constraints that make this conversion a significant quality reduction from M4A/AAC. The codec was designed for the GSM voice channel — 8 kHz mono, with only 8 discrete bitrate modes from 4.75 kbps to 12.2 kbps. FFmpeg will automatically resample any M4A input (typically 44.1 kHz or 48 kHz stereo) down to 8 kHz mono before encoding with libopencore_amrnb. The resulting .amr file is a raw bitstream without a container, meaning it cannot carry cover art, tags, chapters, or any metadata from the source M4A. File sizes will be dramatically smaller — a 128 kbps M4A is reduced to roughly 12.2 kbps — but quality is only suitable for speech intelligibility, not music or high-fidelity audio. The libopencore_amrnb library used by FFmpeg is an open-source implementation of the 3GPP AMR standard and is widely supported, but some FFmpeg builds require it to be compiled in explicitly. If you encounter a 'codec not found' error running the command locally, your FFmpeg binary may not include AMR support and you will need a build that includes --enable-libopencore-amrnb.