Convert WebM to AMR — Free Online Tool
Convert WebM video files to AMR audio, extracting the Opus or Vorbis audio track and re-encoding it as Adaptive Multi-Rate speech audio using the libopencore_amrnb codec at 12.2 kbps. AMR is the standard audio format for mobile voice messaging and telephony, making this conversion ideal when you need to extract spoken content from WebM recordings for use on legacy mobile systems.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your WebM 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
WebM files typically carry audio encoded in Opus (the modern default) or Vorbis — both wideband, general-purpose codecs designed for music and voice alike. AMR-NB (Narrowband), by contrast, is a highly specialized speech codec that operates on 8 kHz audio sampled at bitrates between 4.75 and 12.2 kbps. During this conversion, FFmpeg discards the WebM video stream entirely, then decodes the Opus or Vorbis audio, downmixes it to mono, resamples it from its original sample rate (typically 48 kHz for Opus) down to 8 kHz, and re-encodes it using libopencore_amrnb. This is a full transcode — not a remux — because the source and target codecs are completely incompatible. The dramatic downsampling to 8 kHz means only frequencies relevant to human speech (roughly 300–3400 Hz) are preserved, so music, effects, or high-frequency content will be significantly degraded.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which handles the full pipeline: demuxing the WebM container, decoding the Opus or Vorbis audio stream, resampling and downmixing to 8 kHz mono, and encoding to AMR-NB. |
-i input.webm
|
Specifies the input WebM file. FFmpeg will parse the WebM container, identify the available audio track (Opus or Vorbis) and any video track (VP9), and make them available for processing. |
-c:a libopencore_amrnb
|
Sets the audio encoder to libopencore_amrnb, the open-source implementation of the AMR Narrowband codec. This encoder operates exclusively at 8 kHz mono, so FFmpeg automatically resamples and downmixes the WebM audio before encoding. The video stream is implicitly dropped because AMR has no video container support. |
-b:a 12200
|
Sets the AMR-NB encoding bitrate to 12,200 bits per second (12.2 kbps), which corresponds to AMR mode MR122 — the highest quality mode available in AMR-NB, used to maximize speech intelligibility in the output file. Lower values like 7950 or 4750 produce smaller files but reduced clarity. |
output.amr
|
Defines the output filename and tells FFmpeg to write a raw AMR file, identifiable by the standard #!AMR file header. The .amr extension triggers FFmpeg to use the AMR muxer, which is a simple single-track audio-only container compatible with mobile phones and voice playback applications. |
Common Use Cases
- Extracting a spoken voiceover or narration from a WebM screen recording for submission to a telecom or IVR system that only accepts AMR files
- Converting a WebM podcast interview or voice memo to AMR so it can be played or shared on older Nokia, Sony Ericsson, or feature phone handsets that lack Opus support
- Preparing voice audio captured in a browser-based WebRTC session (which outputs WebM) for archival or playback in mobile telephony infrastructure
- Stripping and re-encoding the audio commentary track from a WebM tutorial video into AMR for use as a low-bandwidth voice attachment in an MMS message
- Converting speech-only WebM recordings from browser-based dictation tools into AMR for import into legacy enterprise voice logging or transcription systems
Frequently Asked Questions
No — this conversion involves significant quality loss, especially if the source WebM contains Opus audio at a high bitrate. AMR-NB operates at a maximum of 12.2 kbps and resamples audio to 8 kHz, discarding all frequency content above roughly 4 kHz. Opus audio in WebM is typically encoded at 48 kHz, so music, background sound, or high-pitched voices will sound noticeably degraded or muffled. AMR is engineered exclusively for intelligible human speech, not general-purpose audio fidelity.
AMR-NB is a narrowband speech codec designed for mobile telephony, where mono audio is the universal standard. FFmpeg's libopencore_amrnb encoder automatically downmixes stereo (or multichannel) WebM audio to a single mono channel during encoding. For speech content this is rarely a problem, since voice intelligibility is unaffected by the loss of stereo separation, but stereo music or spatial audio will be collapsed to center-panned mono.
The video track is silently dropped. The FFmpeg command targets only the audio stream (-c:a libopencore_amrnb) and writes to an .amr output file, which is a pure audio container with no support for video, subtitles, or chapters. Any VP9 video content, embedded subtitles, or chapter metadata present in the WebM file is discarded entirely and cannot be recovered from the AMR output.
Replace the -b:a 12200 value with any of the standard AMR-NB mode bitrates: 4750, 5150, 5900, 6700, 7400, 7950, or 10200 (all in bits per second). For example, ffmpeg -i input.webm -c:a libopencore_amrnb -b:a 7950 output.amr produces mode 7 (MR795) quality, which is commonly used in mobile voice calls and offers a good balance between file size and speech intelligibility. The default 12200 (MR122) is the highest quality AMR-NB mode.
Yes — replace -c:a libopencore_amrnb with -c:a libopencore_amrwb in the command. AMR-WB samples at 16 kHz instead of 8 kHz, preserving frequencies up to about 7 kHz and producing noticeably more natural-sounding speech. However, AMR-WB files use the .awb extension and have more limited device support than AMR-NB. Note that libopencore_amrwb in FFmpeg supports encoding only at its highest mode (23850 bps), so the -b:a flag is effectively fixed.
Yes, with a simple shell loop. On Linux or macOS: for f in *.webm; do ffmpeg -i "$f" -c:a libopencore_amrnb -b:a 12200 "${f%.webm}.amr"; done. On Windows Command Prompt: for %f in (*.webm) do ffmpeg -i "%f" -c:a libopencore_amrnb -b:a 12200 "%~nf.amr". This processes each WebM file in the current directory and saves a corresponding AMR file. The browser-based tool on this page handles one file at a time, so the FFmpeg command is especially valuable for bulk conversions.
Technical Notes
AMR-NB is constrained by its telephony origins in ways that matter when converting from WebM. The codec mandates mono audio at exactly 8000 Hz sample rate and 13.6 ms frame duration — FFmpeg handles all of this automatically via the libopencore_amrnb encoder, inserting the necessary resampling and downmix steps before encoding. WebM files carrying Opus audio (the default since around 2013) are particularly lossy to transcode here because Opus at even modest bitrates (64–96 kbps) captures far more acoustic detail than AMR-NB can represent; the resulting AMR file will be substantially smaller but noticeably bandwidth-limited. WebM files carrying Vorbis audio behave similarly. The output .amr file uses the simple storage format (single-channel, header-identified by the magic bytes #!AMR), which is compatible with most mobile AMR players but is not the same as the MIME-encapsulated multi-channel AMR format used in 3GPP standards. No metadata from the WebM container — title, artist, track info, chapters, or embedded cover art — is carried through to the AMR output, as the AMR file format has no standardized metadata container.