Convert WEBA to AMR — Free Online Tool
Convert WEBA audio files (WebM audio containers with Opus or Vorbis encoding) to AMR format optimized for speech using the libopencore_amrnb codec. AMR's Adaptive Multi-Rate compression is purpose-built for voice telephony, making it the standard choice when you need compact, mobile-compatible speech recordings from web audio sources.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your WEBA 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
WEBA files use the WebM container with either Opus or Vorbis audio codecs — both designed for broadband streaming and general-purpose audio at moderate-to-high bitrates. AMR (Adaptive Multi-Rate) is a fundamentally different codec architecture: it operates at fixed speech-optimized bitrates between 4.75 kbps and 12.2 kbps and is designed exclusively for narrowband voice frequencies (300–3400 Hz). During this conversion, FFmpeg fully decodes the Opus or Vorbis stream from the WEBA container, then re-encodes it using the libopencore_amrnb encoder into the AMR-NB (Narrowband) format. Because AMR-NB targets a sample rate of 8000 Hz, FFmpeg will also resample the audio from its original WEBA sample rate (typically 48000 Hz for Opus) down to 8 kHz. Any non-speech audio content — music, sound effects, or wide-spectrum audio — will lose significant fidelity because AMR's codec intelligence is tuned specifically for human voice patterns, not general audio.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool, the same underlying engine that powers this browser-based converter via its WebAssembly (FFmpeg.wasm) build. |
-i input.weba
|
Specifies the input WEBA file — a WebM audio container holding an Opus or Vorbis encoded audio stream that FFmpeg will decode before re-encoding to AMR. |
-c:a libopencore_amrnb
|
Selects the libopencore_amrnb encoder to produce AMR-NB (Narrowband) output, the speech codec used in GSM mobile telephony that compresses voice audio down to as little as 4.75 kbps. |
-b:a 12200
|
Sets the AMR-NB encoding bitrate to 12200 bps (12.2 kbps), which corresponds to AMR Mode 7 — the highest quality mode available in AMR-NB, offering the best speech intelligibility within the codec's constraints. |
output.amr
|
Defines the output filename with the .amr extension, telling FFmpeg to write an AMR-NB file in the standard IETF storage format compatible with mobile phones, telecom systems, and voice processing applications. |
Common Use Cases
- Saving a voice memo or speech recording captured as a WEBA file from a browser-based recorder into AMR format for playback or storage on older mobile phones that support AMR natively.
- Preparing interview or dictation audio recorded via a WebRTC-based web app for import into telecom or IVR systems that accept AMR files as voice prompts.
- Reducing the file size of a spoken-word WEBA recording to its absolute minimum for transmission over a low-bandwidth channel or embedding in a messaging system with strict attachment size limits.
- Converting a browser-captured voice note in WEBA format to AMR for compatibility with feature phones or embedded devices running mobile telephony stacks that do not support WebM or Opus.
- Archiving speech recordings from web conferencing tools in AMR format to match an existing archive of call recordings stored in the same codec used by a cellular network operator.
- Extracting and re-encoding the speech audio from a WEBA tutorial or lecture clip into AMR for playback on a vehicle infotainment or navigation system that supports AMR voice guidance files.
Frequently Asked Questions
No — AMR-NB is a speech codec that models human vocal characteristics and operates at a maximum of 12.2 kbps with a bandwidth ceiling of approximately 3400 Hz. Music, sound effects, or any wide-spectrum audio will sound severely degraded, thin, and lacking in bass or treble after conversion. This conversion is only suitable for voice recordings such as dictation, phone calls, or spoken-word content where intelligibility matters more than fidelity.
WEBA with Opus typically operates at 128 kbps with a full 48 kHz sample rate, preserving a wide frequency range. AMR-NB operates at 12.2 kbps maximum with an 8 kHz sample rate, which means approximately 75% of the audio frequency content is discarded during downsampling, and the remaining signal is compressed with a speech-specific algorithm. This is an expected and unavoidable tradeoff — AMR's purpose is maximum compression of intelligible speech, not audio quality preservation.
AMR-NB (Narrowband) operates at 8 kHz sample rate and bitrates from 4.75 to 12.2 kbps, targeting traditional telephony voice quality. AMR-WB (Wideband), also known as G.722.2, operates at 16 kHz and supports higher bitrates up to 23.85 kbps, providing noticeably better speech clarity. This tool uses libopencore_amrnb and produces AMR-NB files (.amr), which have the broadest compatibility with legacy mobile devices and telephony systems. AMR-WB files typically use the .awb extension.
Yes, but AMR-NB has a fixed set of valid bitrates determined by its codec modes: 4750, 5150, 5900, 6700, 7400, 7950, 10200, and 12200 bps. The command uses `-b:a 12200` for the highest quality mode. To use a lower bitrate, replace 12200 with one of the other values — for example, `ffmpeg -i input.weba -c:a libopencore_amrnb -b:a 7950 output.amr`. Lower bitrates produce smaller files with slightly reduced speech clarity; for most voice content, 7950 or 12200 offers the best balance of size and intelligibility.
No. The AMR file format has extremely limited metadata support — it does not have a standardized container for tags like artist, title, or recording date the way formats like MP3 or OGG do. Any metadata embedded in the WEBA file (such as title or comment tags written by the recording application) will be lost during conversion. If metadata preservation is important, consider an intermediate format like WAV or MP3 instead.
On Linux or macOS, you can use a shell loop: `for f in *.weba; do ffmpeg -i "$f" -c:a libopencore_amrnb -b:a 12200 "${f%.weba}.amr"; done`. On Windows Command Prompt, use: `for %f in (*.weba) do ffmpeg -i "%f" -c:a libopencore_amrnb -b:a 12200 "%~nf.amr"`. This browser-based tool processes one file at a time, so the FFmpeg command is especially useful for batch operations on large collections of voice recordings.
Technical Notes
The libopencore_amrnb encoder used in this conversion is an open-source implementation of the 3GPP AMR-NB standard (TS 26.071), based on the reference codec used in GSM mobile networks. Because AMR-NB mandates an 8000 Hz sample rate and mono audio, FFmpeg automatically applies a resampler (typically libswresample) to convert the WEBA source — which is usually stereo Opus at 48000 Hz — to mono 8 kHz before encoding. If your WEBA file contains stereo audio, the channels will be mixed down to mono, which is standard behavior for telephony codecs. The output .amr file uses the IETF storage format with the magic number '#!AMR
' at the file header, which is recognized by most mobile media players and telephony platforms. One known limitation is that libopencore_amrnb in some FFmpeg builds may require the `-ar 8000 -ac 1` flags to be set explicitly if automatic resampling is not triggered; if you encounter errors running the command locally, adding those flags before the output filename resolves the issue. Because both WEBA and AMR are lossy formats, this is a lossy-to-lossy transcoding — the audio goes through two rounds of perceptual compression, which compounds artifacts. Starting from a lossless source like WAV or FLAC would always yield better AMR output quality.
' at the file header, which is recognized by most mobile media players and telephony platforms. One known limitation is that libopencore_amrnb in some FFmpeg builds may require the `-ar 8000 -ac 1` flags to be set explicitly if automatic resampling is not triggered; if you encounter errors running the command locally, adding those flags before the output filename resolves the issue. Because both WEBA and AMR are lossy formats, this is a lossy-to-lossy transcoding — the audio goes through two rounds of perceptual compression, which compounds artifacts. Starting from a lossless source like WAV or FLAC would always yield better AMR output quality.