Convert M4B to AMR — Free Online Tool

Convert M4B audiobook files to AMR format, transcoding the AAC audio track to the Adaptive Multi-Rate narrowband codec (libopencore_amrnb) optimized for speech. This is especially useful for playing audiobook audio on legacy mobile devices or GSM-based systems that natively support AMR.

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

M4B files store AAC-encoded audio inside an MPEG-4 container, often with embedded chapter markers, bookmarks, and ID3-style metadata. Converting to AMR requires fully decoding the AAC audio stream and re-encoding it using the libopencore_amrnb (AMR Narrowband) codec at 8000 Hz mono — the only sample rate and channel configuration AMR supports. Because AMR Narrowband was specifically engineered for human speech frequencies (300 Hz–3400 Hz), it discards audio information outside that range during encoding. Chapter markers, bookmarking data, and any cover art embedded in the M4B are not carried over to the AMR container, which has no support for such metadata. The result is a compact, speech-optimized file suited for voice playback on mobile telephony hardware.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool. In the browser-based version of this tool, FFmpeg runs via WebAssembly (FFmpeg.wasm) entirely client-side — no data leaves your device.
-i input.m4b Specifies the input M4B file. FFmpeg reads the MPEG-4 container and identifies the AAC audio stream, as well as any chapter markers or metadata present in the file.
-c:a libopencore_amrnb Selects the libopencore_amrnb encoder for the audio stream, which implements the AMR Narrowband codec. This replaces the source AAC codec with AMR-NB encoding optimized for speech at 8000 Hz.
-b:a 12200 Sets the AMR Narrowband bitrate to 12,200 bps, which corresponds to the highest quality mode (Mode 7) in the AMR-NB codec specification. This is the best available option for preserving audiobook speech intelligibility within AMR's constraints.
output.amr Defines the output filename with the .amr extension. FFmpeg uses this extension to write a raw AMR bitstream file, which is the standard container for AMR Narrowband audio used by mobile devices and telephony systems.

Common Use Cases

  • Transferring an audiobook to an older feature phone or GSM handset that only supports AMR playback natively
  • Extracting speech audio from an M4B podcast episode for use in a voice messaging or IVR system that requires AMR input
  • Archiving the spoken-word track of an audiobook in a highly compressed format when storage on an embedded or mobile device is severely limited
  • Preparing audiobook narration samples for compatibility testing with telecommunications infrastructure that processes AMR streams
  • Converting M4B lecture recordings to AMR for playback on ruggedized field devices used in remote areas with limited storage capacity

Frequently Asked Questions

No. The AMR container format has no support for chapter markers, bookmarks, or any of the audiobook-specific metadata that M4B carries. All of that structural information is lost during conversion. If preserving chapters is important, AMR is not an appropriate target format — consider MP3 with ID3 chapter tags or keeping the M4B intact for chapter-aware playback.
AMR Narrowband enforces a fixed 8000 Hz sample rate and mono channel output, which immediately discards all audio content above 4000 Hz. Combined with the low maximum bitrate of 12,200 bps, the codec is optimized exclusively for intelligible speech rather than audio fidelity. M4B files often use 44.1 kHz stereo AAC at much higher bitrates, so the quality reduction is significant and expected. For music-heavy audiobooks or productions with sound design, this loss will be very noticeable.
AMR Narrowband (AMR-NB) operates at 8000 Hz and bitrates up to 12,200 bps, while AMR Wideband (AMR-WB) operates at 16,000 Hz and supports bitrates up to 23,850 bps, capturing a broader speech frequency range. For audiobook narration, AMR-WB will produce noticeably more natural-sounding voice audio if your target device supports it. However, AMR-NB has much wider hardware compatibility, especially on older devices. To use AMR-WB, replace -c:a libopencore_amrnb with -c:a libopencore_amrwb in the FFmpeg command and update the bitrate accordingly.
The -b:a flag controls the bitrate, and for AMR Narrowband the valid values are fixed mode rates: 4750, 5150, 5900, 6700, 7400, 7950, 10200, and 12200 (in bits per second). The default used here is 12200, which is the highest quality available for AMR-NB and is recommended for audiobook speech. Lowering it to something like 7950 or 5900 reduces file size further but degrades intelligibility. Unlike AAC or MP3, AMR does not accept arbitrary bitrate values — you must use one of these exact mode rates.
Yes. On Linux or macOS you can run a shell loop: for f in *.m4b; do ffmpeg -i "$f" -c:a libopencore_amrnb -b:a 12200 "${f%.m4b}.amr"; done. On Windows Command Prompt, use: for %f in (*.m4b) do ffmpeg -i "%f" -c:a libopencore_amrnb -b:a 12200 "%~nf.amr". Each file is processed sequentially, and the output filename preserves the original base name with the .amr extension.
This is a full re-encode, not a remux. AMR and AAC are completely different codecs with incompatible bitstream formats, so FFmpeg must fully decode the AAC audio from the M4B and then re-encode it using the libopencore_amrnb encoder. This also means AMR's constraints — 8000 Hz sample rate, mono audio — are applied during encoding, so FFmpeg will automatically downsample and downmix the source audio to meet AMR's requirements.

Technical Notes

AMR Narrowband imposes strict constraints that significantly affect the output: it only operates at 8000 Hz (narrowband telephone quality) and is inherently mono. FFmpeg will automatically resample the M4B's audio (typically 44100 Hz or 48000 Hz stereo AAC) down to 8000 Hz mono before passing it to the libopencore_amrnb encoder. The bitrate values in AMR-NB are not continuous — they represent discrete codec modes defined by the GSM and 3GPP standards, and FFmpeg will snap to the nearest valid mode if a non-standard value is supplied. The .amr file container is a raw AMR bitstream with a simple header and carries no chapter, cover art, or extended metadata. The libopencore_amrnb library used by FFmpeg is derived from the OpenCORE framework, which implements 3GPP TS 26.073. Note that FFmpeg must be compiled with --enable-libopencore-amrnb for this codec to be available on desktop installations; many default package manager builds include it, but some minimal builds do not.

Related Tools