Convert 3GP to AMR — Free Online Tool

Convert 3GP video files to AMR audio by extracting and re-encoding the audio track using the libopencore_amrnb codec — the same narrowband speech codec used in mobile telephony. Ideal for isolating voice recordings from 3G-era mobile video into a compact, speech-optimized audio format.

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

3GP files typically contain a video stream (often H.264/libx264) and an audio stream encoded in AAC or MP3. During this conversion, the video stream is completely discarded and only the audio track is processed. The AAC or MP3 audio is decoded and then re-encoded from scratch using the libopencore_amrnb (Adaptive Multi-Rate Narrowband) codec at 12,200 bps — the highest quality AMR-NB bitrate. Because AMR-NB was specifically engineered for human speech frequencies (300–3400 Hz), it is highly efficient for voice content but will noticeably degrade music or complex audio. The result is a very small .amr file optimized for speech intelligibility rather than audio fidelity.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg multimedia processing tool. In this browser-based 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.3gp Specifies the input file — a 3GP container that typically holds an H.264 video stream and an AAC or MP3 audio stream recorded on a 3G mobile device. FFmpeg will demux both streams but only the audio will be used in this conversion.
-c:a libopencore_amrnb Sets the audio encoder to libopencore_amrnb, the open-source implementation of the AMR Narrowband codec. This re-encodes the 3GP audio track (decoded from AAC or MP3) into the AMR-NB bitstream format used in mobile telephony, forcing the output to 8 kHz mono speech encoding.
-b:a 12200 Sets the AMR-NB bitrate to 12,200 bits per second — the highest of the eight fixed rates defined by the AMR-NB standard. This produces the best available speech quality within the narrowband AMR-NB constraint, resulting in approximately 90 KB per minute of audio.
output.amr Specifies the output filename with the .amr extension. FFmpeg uses this extension to write a standard AMR file beginning with the '#!AMR' magic header, which is recognized by mobile devices, telephony systems, and media players that support the AMR-NB format.

Common Use Cases

  • Extracting a voice memo or spoken message recorded on an old 3G mobile phone into an AMR file that can be played back on legacy feature phones or voicemail systems
  • Archiving field interview recordings captured as 3GP video on early smartphones into a lightweight speech-focused audio format for storage on bandwidth-constrained systems
  • Preparing spoken-word audio from 3GP clips for upload to telephony platforms or IVR systems that specifically require AMR-NB encoded files
  • Stripping video from a 3GP phone call recording to produce a minimal AMR audio file for transcription workflows where file size must be minimized
  • Converting 3GP video recordings of lectures or dictations to AMR for compatibility with older mobile devices or embedded systems that support AMR playback but not 3GP video
  • Reducing storage footprint of a large batch of 3GP voice recordings by converting them to AMR, which can achieve under 10 KB per second of speech audio

Frequently Asked Questions

Yes, this conversion involves lossy-to-lossy transcoding, so some quality degradation is unavoidable. The original 3GP audio (typically AAC at 64k or higher) is decoded to raw PCM and then re-encoded with AMR-NB at 12,200 bps. AMR-NB is narrowband by design, capturing only the 300–3400 Hz frequency range — adequate for speech intelligibility but noticeably degraded for music or wideband audio. If your 3GP file contains voice recordings, the output quality will still be quite clear; if it contains music or ambient sound, expect significant quality loss.
AMR-NB (Narrowband) operates at an 8 kHz sample rate and bitrates from 4,750 to 12,200 bps, optimized for telephone-quality speech. AMR-WB (Wideband) uses a 16 kHz sample rate and supports higher bitrates, offering noticeably better speech clarity. This tool uses libopencore_amrnb (AMR-NB) by default, producing a standard .amr file compatible with virtually all devices that support the format. AMR-WB files are often saved with the .awb extension and require a different decoder. For most telephony and legacy mobile use cases, AMR-NB is the correct choice.
The size reduction comes from two factors: the video stream (typically the largest component of a 3GP file) is completely removed, and the remaining audio is encoded at a very low bitrate of 12,200 bps. For reference, one minute of AMR-NB audio at 12,200 bps is roughly 90 KB. The original 3GP file likely contained video at tens to hundreds of kilobits per second in addition to audio, so removing the video alone accounts for the majority of the size difference.
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, not kilobits). For example, to use the lowest bitrate, change the command to: ffmpeg -i input.3gp -c:a libopencore_amrnb -b:a 4750 output.amr. Note that AMR-NB only supports these specific fixed bitrates — entering an arbitrary value will cause FFmpeg to select the nearest supported rate. Lower bitrates reduce file size but reduce speech clarity.
AMR is a very minimal container format with essentially no standardized metadata support — it stores only the raw AMR bitstream with a file header. Tags like title, artist, date, or GPS coordinates that may have been embedded in the 3GP file will not be preserved in the AMR output. If retaining metadata is important, consider converting to a format like M4A or MP3, which support ID3 or iTunes-style tags.
Yes, on Linux or macOS you can use a shell loop: for f in *.3gp; do ffmpeg -i "$f" -c:a libopencore_amrnb -b:a 12200 "${f%.3gp}.amr"; done. On Windows Command Prompt, use: for %f in (*.3gp) do ffmpeg -i "%f" -c:a libopencore_amrnb -b:a 12200 "%~nf.amr". This processes each 3GP file in the current directory and outputs a corresponding .amr file with the same base name. The browser-based tool on this page processes one file at a time, so the FFmpeg command is the recommended approach for bulk conversions.

Technical Notes

AMR-NB (libopencore_amrnb) imposes strict constraints that are important to understand before converting. The codec enforces a fixed 8,000 Hz sample rate and mono channel output — if your 3GP file contains stereo audio, FFmpeg will automatically downmix it to mono during encoding. The eight supported bitrates (4,750–12,200 bps) are fixed-point values defined by the AMR specification; FFmpeg will round to the nearest valid rate if an unsupported value is specified. The .amr file format uses a simple magic number header (#!AMR) followed by raw AMR frames — there is no container-level metadata, chapter, or subtitle support. Because AMR-NB was designed around CELP (Code-Excited Linear Prediction) speech modeling, it performs well only on voice content; audio containing background music, broadband noise, or stereo sound fields will exhibit audible artifacts even at the maximum 12,200 bps rate. For higher-fidelity speech archival from 3GP sources, consider AMR-WB (libopencore_amrwb) or AAC-LC at 32–48 kbps instead.

Related Tools