Extract Audio from 3GPP to AMR — Free Online Tool

Extract audio from 3GPP mobile video files and convert it to AMR format using the libopencore_amrnb codec — the same speech-optimized encoding used in mobile telephony. Ideal for recovering voice recordings, call audio, or speech captured on older mobile devices.

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

3GPP files typically carry AAC or MP3 audio paired with H.264 video. During this conversion, the video stream is completely discarded (-vn), and the AAC audio is decoded and then re-encoded into Adaptive Multi-Rate Narrowband (AMR-NB) format using the libopencore_amrnb codec at 12,200 bps — the highest quality AMR-NB bitrate mode. AMR is not a general-purpose audio format; it uses a codec specifically engineered for human speech frequencies (300–3400 Hz), so the output will be optimized for voice intelligibility rather than music or full-spectrum audio fidelity. The resulting .amr file is extremely compact and natively readable by most mobile phones and voice messaging systems.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool, which runs entirely in your browser via WebAssembly (FFmpeg.wasm) on this page, or can be run locally on your desktop to handle files over 1GB.
-i input.3gp Specifies the input 3GPP file. FFmpeg will demux the container, exposing both the H.264 (or MJPEG) video stream and the AAC (or MP3) audio stream for processing.
-vn Disables video output entirely — this is the flag that makes this an audio extraction operation. The video stream from the 3GPP file is read and then discarded, so nothing from the H.264 track appears in the AMR output.
-c:a libopencore_amrnb Selects the OpenCORE AMR Narrowband encoder to produce AMR-NB audio. This decoder/encoder library implements the 3GPP TS 26.071 standard and is required to write valid .amr files — AMR cannot be produced by FFmpeg's native encoders without this library.
-b:a 12200 Sets the AMR-NB encoding mode to 12,200 bits per second, which is the highest quality mode available in the AMR-NB specification (Mode 7, also called MR122). This provides the best speech intelligibility while keeping the file far smaller than any general-purpose audio format.
output.amr The output filename with the .amr extension, which tells FFmpeg to write a raw AMR file with the standard #!AMR file header. This format is natively supported by most mobile phones, messaging apps, and telephony platforms.

Common Use Cases

  • Recovering voice memos or spoken notes recorded as 3GPP video on an older Android or feature phone, converting them to AMR for archival in a speech-native format
  • Extracting audio from 3GPP video calls or MMS video messages to feed into a voice transcription pipeline that requires AMR input
  • Preparing speech recordings captured on 3G-era mobile devices for playback in telephony systems or IVR platforms that natively support AMR
  • Stripping the video track from a 3GPP field interview or voice note to produce a lightweight AMR file for storage on memory-constrained devices
  • Converting 3GPP-encoded speech content into AMR so it can be sent as a voice message attachment on platforms that require the AMR container format
  • Archiving mobile phone video logs of spoken content in AMR, reducing file size dramatically compared to retaining the full 3GPP video

Frequently Asked Questions

Not particularly. AMR-NB is a speech codec with a frequency response optimized for the human voice range (roughly 300–3400 Hz), meaning it discards high-frequency content that music depends on. Even at the maximum 12,200 bps mode used by default here, music will sound muffled and telephone-like. This conversion is best suited for voice recordings, spoken word, or call audio — if your 3GPP file contains music or general-purpose audio, consider extracting to AAC or MP3 instead.
AMR-NB (Narrowband) operates at an 8 kHz sample rate and bitrates from 4,750 to 12,200 bps, designed for standard telephone-quality voice. AMR-WB (Wideband), sometimes called AMR-WB or G.722.2, uses a 16 kHz sample rate and delivers noticeably better speech quality with more natural-sounding voice. This tool produces AMR-NB using libopencore_amrnb, which is the most universally compatible AMR variant. If you need AMR-WB, you can modify the FFmpeg command to use libopencore_amrwb instead.
Replace the value after -b:a with any of the valid AMR-NB bitrate modes: 4750, 5150, 5900, 6700, 7400, 7950, 10200, or 12200 (in bits per second). For example, use -b:a 7950 for a smaller file at moderate speech quality. Note that AMR is a fixed-mode codec — only these exact values are valid; FFmpeg will snap to the nearest valid mode if you specify an arbitrary value. For voice intelligibility with minimal file size, 7950 or 10200 are reasonable choices.
Two things combine to produce a dramatic size reduction. First, the entire video stream is dropped, which is typically the largest component of a 3GPP file. Second, AMR-NB at 12,200 bps is an extremely low-bitrate codec — far below typical AAC or MP3 audio. A one-minute 3GPP clip that might be 3–5 MB could produce an AMR file under 100 KB. This makes AMR practical for storage and transmission on bandwidth-constrained mobile networks.
Yes. On Linux or macOS, you can use a shell loop: for f in *.3gp; do ffmpeg -i "$f" -vn -c:a libopencore_amrnb -b:a 12200 "${f%.3gp}.amr"; done. On Windows Command Prompt, use: for %f in (*.3gp) do ffmpeg -i "%f" -vn -c:a libopencore_amrnb -b:a 12200 "%~nf.amr". This is especially useful when extracting audio from a batch of mobile video recordings.
Minimally. The AMR container format is extremely simple and has very limited metadata support compared to 3GPP. Basic timing information is preserved, but tags like title, artist, recording date, or GPS data that may exist in the 3GPP file are not carried over into the AMR output. If metadata preservation matters, consider extracting to a format with richer container support such as M4A or OGG.

Technical Notes

The AMR-NB codec (libopencore_amrnb) enforces a fixed 8,000 Hz sample rate and mono channel output — if the source 3GPP file contains stereo AAC audio, FFmpeg will automatically downmix to mono and resample to 8 kHz during encoding. This is expected behavior, not data loss in the context of AMR's intended use. The libopencore_amrnb library is an implementation of the 3GPP AMR-NB specification (TS 26.071) and produces .amr files with the standard magic number header (#!AMR
) recognized by mobile platforms. One important limitation: AMR-NB's 8 kHz bandwidth means the output is definitionally telephone quality, regardless of the source audio quality in the 3GPP file. If the source 3GPP file uses libmp3lame for audio rather than AAC, the conversion pipeline remains identical — FFmpeg decodes the MP3 stream internally before feeding PCM audio to the AMR encoder. No special flags are required for AMR output since the container is so simple there are no faststart, streaming, or metadata alignment concerns.

Related Tools