Extract Audio from 3GP to AMR — Free Online Tool

Extract audio from 3GP mobile video files and convert it to AMR format using the libopencore_amrnb codec — the same speech-optimized format used in mobile telephony. Ideal for pulling voice recordings or call audio from 3GP files into a compact, telephony-compatible AMR file.

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

During this conversion, FFmpeg discards the 3GP video stream entirely and extracts only the audio track. The audio — typically encoded as AAC or MP3 inside the 3GP container — is then re-encoded from scratch using the libopencore_amrnb encoder, which produces Adaptive Multi-Rate Narrowband audio at 12,200 bps by default. AMR-NB is designed specifically for speech, operating at a fixed 8 kHz sample rate with a mono channel, so any stereo or high-frequency audio content in the source 3GP file will be downmixed and narrowed to fit the AMR-NB codec's constraints. This is a full transcode, not a remux, because 3GP's native audio codecs (AAC, MP3) are incompatible with the AMR container format.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool, which handles the full transcode pipeline — reading the 3GP container, decoding the audio stream, re-encoding to AMR-NB, and writing the output file.
-i input.3gp Specifies the input file — a 3GP container typically holding a video stream and an audio stream encoded in AAC or MP3. FFmpeg will parse the 3GP container structure to locate and demux the audio track.
-vn Disables video output entirely, instructing FFmpeg to ignore the 3GP video stream and produce an audio-only output. This is required because the AMR container format cannot hold a video stream.
-c:a libopencore_amrnb Sets the audio encoder to libopencore_amrnb, which implements the AMR Narrowband codec. This encoder re-encodes the decoded 3GP audio into AMR-NB bitstream format at 8 kHz mono, the standard for mobile telephony speech.
-b:a 12200 Sets the AMR-NB encoding mode to 12,200 bps — the highest quality mode (Mode 7) in the AMR-NB standard. This produces the most intelligible speech output and corresponds directly to one of the eight fixed bitrate modes defined by the AMR-NB specification.
output.amr Specifies the output filename with the .amr extension, which tells FFmpeg to use the AMR container format. The resulting file will contain a standard AMR-NB bitstream compatible with mobile telephony systems, legacy handsets, and AMR-aware audio players.

Common Use Cases

  • Extracting voice memos or spoken recordings captured on older 3G mobile phones into AMR format for archiving or playback on telephony systems
  • Converting 3GP video messages from early-generation mobile devices into AMR audio for use in IVR (Interactive Voice Response) systems that require AMR-NB input
  • Pulling the speech audio track from a 3GP mobile video to submit as a voice sample to a platform or tool that only accepts AMR files
  • Stripping audio from 3GP field recordings or interviews captured on 3G phones to produce lightweight AMR files for low-bandwidth transmission over SMS or MMS gateways
  • Archiving mobile voicemail or voice note videos stored in 3GP format as standalone AMR audio files, which are smaller and more purpose-appropriate for speech-only content

Frequently Asked Questions

Yes, there will be a meaningful quality reduction, and it's important to understand why. AMR-NB is strictly a speech codec operating at 8 kHz sample rate with a mono channel, which means it discards all audio above 4 kHz and collapses stereo to mono. If your 3GP file contains music, ambient sound, or high-fidelity audio encoded in AAC at 64 kbps or higher, that content will sound noticeably narrower and more telephone-like after conversion to AMR. For speech content — voice recordings, interviews, voicemails — the quality loss is much less perceptible, since human speech sits comfortably within the 300 Hz–3400 Hz range that AMR-NB is tuned for.
This is expected behavior of the AMR-NB codec. libopencore_amrnb encodes audio at a fixed 8 kHz sample rate, which is the same bandwidth used in traditional mobile phone calls — by design. The codec was developed specifically to transmit intelligible speech over constrained radio networks, not to preserve audio fidelity. The resulting AMR file will always have that characteristic 'phone call' quality regardless of how good the source audio was.
These numbers are bits per second and correspond to the standardized AMR-NB codec modes, ranging from 4,750 bps (Mode 0, lowest quality, smallest file) to 12,200 bps (Mode 7, highest quality, largest file — though 'largest' is still very small by modern standards). The default of 12,200 bps is the right choice for most use cases because it produces the most intelligible speech output while still resulting in tiny file sizes. Lower modes like 4,750 or 5,150 bps introduce more aggressive compression artifacts and are typically only used when bandwidth or storage is extremely constrained.
Replace the value after -b:a with any of the supported AMR-NB mode rates: 4750, 5150, 5900, 6700, 7400, 7950, 10200, or 12200. For example, to use the lowest-bandwidth mode, run: ffmpeg -i input.3gp -vn -c:a libopencore_amrnb -b:a 4750 output.amr. Note that AMR-NB does not accept arbitrary bitrate values — FFmpeg will snap to the nearest valid mode if you enter an unsupported number, so it's best to use one of the exact values listed.
Yes, with a simple shell loop. On Linux or macOS, use: 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 will process every 3GP file in the current directory and produce a matching AMR file for each one.
No. The AMR container format is extremely minimal — it stores only the raw AMR audio bitstream with a simple file header and has no standardized support for metadata tags like title, artist, creation date, or duration. Any ID3 tags, 3GP metadata atoms, or other descriptive information embedded in your source file will be lost during this conversion. If preserving metadata is important, consider keeping the original 3GP file alongside the converted AMR file as an archive.

Technical Notes

The AMR-NB format produced by libopencore_amrnb is strictly monophonic and sampled at 8 kHz, which are hard constraints of the codec — FFmpeg will automatically downmix stereo audio and resample from whatever rate the 3GP source uses (commonly 44.1 kHz or 48 kHz for AAC-encoded 3GP). This resampling and downmixing happens transparently but contributes to the quality reduction. The output .amr file uses the standard AMR magic number header (#!AMR
) for compatibility with mobile telephony platforms and legacy handsets. Note that libopencore_amrnb and libopencore_amrwb must be compiled into your local FFmpeg build to run this command on the desktop; many default FFmpeg distributions include them, but some Linux package manager builds omit them for licensing reasons — if you get an 'encoder not found' error, you may need to compile FFmpeg from source or use a build from ffmpeg.org. The -vn flag is critical here: without it, FFmpeg would attempt to include a video stream in the output, which the AMR container cannot hold and would cause an error.

Related Tools