Extract Audio from MPEG to AMR — Free Online Tool
Extract audio from MPEG video files and convert it to AMR format using the libopencore_amrnb codec — ideal for repurposing speech-heavy broadcast or legacy video content into a compact, mobile-telephony-optimized audio file. AMR's narrow-band encoding excels at preserving voice clarity at extremely low bitrates, making it the right choice when file size and speech intelligibility matter more than music fidelity.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your MPEG 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 discards the MPEG video stream entirely (no video decoding occurs) and extracts the audio track — which is typically encoded in MP2 or MP2-layer audio in MPEG-1/2 containers. That audio is then decoded and re-encoded from scratch using the libopencore_amrnb codec into Adaptive Multi-Rate Narrow-Band format. AMR-NB operates at fixed bitrates between 4.75 kbps and 12.2 kbps, which is dramatically lower than the MP2 audio typically found in MPEG files (often 192–384 kbps). Because AMR's codec was specifically designed to encode human speech efficiently, this transcoding process applies a speech-optimized compression algorithm that can sound excellent for voice but will noticeably degrade music or complex audio. The output is a raw .amr file with no container metadata, chapters, or multiple tracks — just a single mono audio stream.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg program. In the browser-based version of this tool, FFmpeg runs locally via WebAssembly (ffmpeg.wasm) — no data leaves your device. On your desktop, this calls your locally installed FFmpeg binary. |
-i input.mpeg
|
Specifies the input MPEG file. FFmpeg reads both the MPEG-1 or MPEG-2 video stream and the audio stream (typically MP2-encoded) from this container, making both available for processing in the next steps. |
-vn
|
Disables video output entirely, telling FFmpeg to ignore the MPEG video stream (mpeg1video or mpeg2video) and produce an audio-only output. Without this flag, FFmpeg would attempt to include video in the output, which AMR cannot contain. |
-c:a libopencore_amrnb
|
Selects the libopencore_amrnb encoder to re-encode the extracted MPEG audio as AMR Narrow-Band. This decoder decodes the source MP2 audio and re-encodes it using the AMR-NB speech codec, which is optimized for telephony-quality voice at very low bitrates. |
-b:a 12200
|
Sets the AMR-NB encoding bitrate to 12,200 bits per second, which is the highest available mode (12.2 kbps) in the AMR-NB specification and provides the best speech quality the codec can deliver. Valid values are restricted to the eight fixed AMR mode rates defined by the 3GPP standard. |
output.amr
|
Defines the output filename with the .amr extension, which causes FFmpeg to write a raw AMR storage format file with the standard '#!AMR' file header. This format is natively playable on Android devices and most GSM-era mobile phones. |
Common Use Cases
- Extracting spoken commentary or narration from legacy broadcast MPEG recordings to archive as small AMR voice memos compatible with older mobile devices
- Converting MPEG video interviews or press conference recordings into AMR audio for use in mobile telephony systems or IVR (interactive voice response) applications
- Repurposing MPEG-captured DVD-compatible video of lectures or speeches into AMR files small enough to send via MMS or store on constrained embedded systems
- Preparing voice-only audio from MPEG news footage for integration into telecom infrastructure that natively processes AMR streams
- Stripping audio from MPEG-1 video files recorded by legacy capture hardware to produce compact speech files for transcription workflows on mobile platforms
- Creating ringtone or voice prompt source files from MPEG video content for deployment on older GSM or feature phones that natively support AMR playback
Frequently Asked Questions
AMR-NB was engineered specifically for human speech and performs poorly on music, sound effects, or mixed audio. At 12.2 kbps the codec applies aggressive narrow-band filtering that cuts off frequencies above roughly 3.4 kHz — music will sound muffled and artifacts will be clearly audible. If your MPEG file contains primarily voice content, the output quality can be quite acceptable, but for anything other than speech you should consider a different output format such as MP3 or AAC.
Two things are happening simultaneously: the video stream is completely removed (which alone eliminates the vast majority of the file size, since video is typically 90–99% of an MPEG file's data), and the audio is re-encoded at a maximum of 12.2 kbps — compared to the 128–384 kbps MP2 audio commonly found in MPEG files. The combination of dropping video and applying AMR's extreme compression routinely produces output files that are 99% smaller than the original MPEG.
No — AMR-NB (libopencore_amrnb) is a mono-only codec. If your MPEG file contains stereo MP2 audio, FFmpeg will automatically downmix both channels to a single mono channel during encoding. This is by design in the AMR specification, as AMR was developed for telephone-quality voice transmission where mono is standard. You will not get a stereo AMR file regardless of the source audio configuration.
Replace the value after -b:a with one of the valid AMR-NB bitrates: 4750, 5150, 5900, 6700, 7400, 7950, 10200, or 12200 (in bits per second). For example, use -b:a 7950 for a lower bitrate that still maintains reasonable speech intelligibility, or keep -b:a 12200 for the best quality AMR-NB can offer. Note that these are fixed mode bitrates dictated by the AMR specification — you cannot set arbitrary values between them.
Yes. On Linux or macOS you can run a shell loop: for f in *.mpeg; do ffmpeg -i "$f" -vn -c:a libopencore_amrnb -b:a 12200 "${f%.mpeg}.amr"; done. On Windows Command Prompt, use: for %f in (*.mpeg) do ffmpeg -i "%f" -vn -c:a libopencore_amrnb -b:a 12200 "%~nf.amr". Note that libopencore_amrnb support must be compiled into your FFmpeg build — many standard distributions include it, but you can verify by running ffmpeg -codecs | grep amr.
No. The raw .amr file format has no standardized metadata container — it does not support ID3 tags, title, artist, or any other embedded metadata fields. Any metadata present in the original MPEG file, including timestamps or title information, will be lost during conversion. If metadata preservation is important for your workflow, you would need to use a format with container-level metadata support such as M4A or OGG instead.
Technical Notes
The libopencore_amrnb encoder implements the 3GPP AMR-NB (Adaptive Multi-Rate Narrow-Band) speech codec standardized for GSM and UMTS telephony. Its frequency response is band-limited to 300–3400 Hz, making it technically a telephone-quality codec by design. MPEG files carrying MP2 audio (the most common audio codec in MPEG-1/2 containers) will undergo a full decode-and-re-encode cycle, meaning this is a lossy-to-lossy transcode with compounding generation loss — though the practical impact depends heavily on whether the source content is speech. The output .amr file uses the AMR storage format with the magic number header '#!AMR
', which is directly playable on most Android devices and many older feature phones without any additional wrapping. FFmpeg's libopencore_amrnb implementation requires the opencore-amr library at build time; if your local FFmpeg binary returns 'Encoder libopencore_amrnb not found', you need a build compiled with --enable-libopencore-amrnb. There is no support for chapters, subtitle streams, or multiple audio tracks in either the MPEG source or the AMR output. The sample rate will be resampled to 8000 Hz (8 kHz), the only sample rate supported by AMR-NB, regardless of the original MPEG audio sample rate.
', which is directly playable on most Android devices and many older feature phones without any additional wrapping. FFmpeg's libopencore_amrnb implementation requires the opencore-amr library at build time; if your local FFmpeg binary returns 'Encoder libopencore_amrnb not found', you need a build compiled with --enable-libopencore-amrnb. There is no support for chapters, subtitle streams, or multiple audio tracks in either the MPEG source or the AMR output. The sample rate will be resampled to 8000 Hz (8 kHz), the only sample rate supported by AMR-NB, regardless of the original MPEG audio sample rate.