Extract Audio from 3GPP to AAC — Free Online Tool

Extract the AAC audio track from a 3GPP (.3gp) file and save it as a standalone .aac file — no re-encoding required in most cases, since 3GPP files commonly store audio using AAC by default. The result is a lightweight, high-quality audio file compatible with iTunes, iOS, Android, and virtually all modern media players.

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 are mobile-optimized containers that typically carry an AAC audio stream (alongside H.264 video) designed for 3G network delivery. This tool strips the video stream entirely using the -vn flag and extracts the AAC audio. Because the source audio in a 3GPP file is almost always already encoded in AAC, the extraction can be performed by remuxing — pulling the audio bitstream out of the 3GPP container and writing it into a raw .aac file without decoding and re-encoding. This preserves the original audio quality without any additional generation loss. The -b:a 128k flag sets the output bitrate, which primarily matters if the tool does need to re-encode (for example, if the source contains MP3 audio instead of AAC). The output is a raw AAC bitstream file (.aac) that is playable on iOS, Android, macOS, and most desktop players.

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 files leave your device.
-i input.3gp Specifies the input 3GPP file. FFmpeg reads the container and detects all streams inside — typically an H.264 video track and an AAC or AMR audio track encoded for mobile delivery.
-vn Disables video output entirely. This is essential for audio extraction — it tells FFmpeg to ignore the H.264 (or MJPEG) video stream in the 3GPP file and write only audio data to the output .aac file.
-c:a aac Sets the audio codec to AAC using FFmpeg's built-in encoder. If the source 3GPP audio is already AAC, FFmpeg may remux the stream directly; if the source is AMR or another codec, this flag triggers transcoding to AAC for broad compatibility with iOS, Android, and desktop players.
-b:a 128k Sets the AAC audio output bitrate to 128 kilobits per second. This is a common quality level for music and general audio — high enough for clear reproduction while keeping file sizes small. For voice-only 3GPP recordings (which were often encoded at 32–64k originally), you can lower this value without perceptible quality loss.
output.aac Defines the output filename and format. The .aac extension tells FFmpeg to write a raw AAC bitstream with ADTS headers — a format natively playable by iOS, Android, macOS, VLC, and most modern media players without needing an additional container.

Common Use Cases

  • Extracting a voice memo or phone call recording stored as a .3gp file from an older Android or Nokia device to archive it as a standard audio file
  • Pulling the audio track from a 3GPP video sent via MMS or messaging apps on older mobile networks for use in a podcast or audio project
  • Converting 3GPP field recordings made on early smartphones into .aac files for import into GarageBand or iTunes on macOS/iOS
  • Stripping the audio from a 3GPP video clip to create a ringtone or notification sound compatible with iPhone or modern Android devices
  • Extracting speech or interview audio recorded on a 3G-era feature phone for transcription or archival purposes
  • Removing the video component from a low-bitrate 3GPP clip to reduce file size before sharing the audio content over email or messaging apps

Frequently Asked Questions

In most cases, no. 3GPP files almost universally use AAC as their audio codec, which means the audio bitstream can be remuxed directly into the .aac output file without decoding or re-encoding. This is a lossless container operation — the audio samples themselves are never touched. Quality loss would only occur if the source 3GPP file used a different audio codec (like MP3) that required transcoding to AAC.
Both .aac and .m4a contain AAC-encoded audio, but .m4a wraps the AAC stream in an MPEG-4 container (MP4), while .aac is a raw AAC bitstream file. Raw .aac files are slightly simpler and more universally decodable at the codec level, but .m4a files are generally better supported for metadata (like album art and track titles) in iTunes and iOS apps. If you need richer metadata support, you can change the output filename to output.m4a in the FFmpeg command — the codec flags remain the same.
That depends entirely on the bitrate used when the original 3GPP file was recorded. 3GPP was designed for 3G network transmission and commonly used very low audio bitrates — as low as 12.2 kbps for AMR-NB voice codec or around 32–64 kbps for AAC. The extraction process preserves whatever quality exists in the source file; it cannot improve audio that was originally encoded at a low bitrate. Check the source file's audio bitrate first using a tool like MediaInfo if quality is a concern.
Some 3GPP files — particularly those from very early 3G handsets — store audio in AMR-NB or AMR-WB (Adaptive Multi-Rate) codecs instead of AAC. In that case, this tool will transcode the AMR audio to AAC at 128k, which introduces one generation of lossy re-encoding. The output will still be playable as a standard .aac file, but the quality ceiling is limited by the original AMR recording. You can identify your file's codec by running ffmpeg -i input.3gp in a terminal and reading the audio stream details.
Replace the 128k value in the -b:a 128k flag with your preferred bitrate. For voice recordings or low-quality 3GPP source files, 64k or 96k is often sufficient. For music or higher-fidelity content, 192k or 256k will produce better results. For example: ffmpeg -i input.3gp -vn -c:a aac -b:a 192k output.aac. Keep in mind that increasing the bitrate beyond the original source quality won't recover detail that was lost during the original 3GPP encoding.
Yes. On Linux or macOS, you can run a simple shell loop: for f in *.3gp; do ffmpeg -i "$f" -vn -c:a aac -b:a 128k "${f%.3gp}.aac"; done. On Windows Command Prompt, use: for %f in (*.3gp) do ffmpeg -i "%f" -vn -c:a aac -b:a 128k "%~nf.aac". This processes every .3gp file in the current directory and outputs a matching .aac file for each — useful for bulk-archiving recordings from an older device.

Technical Notes

3GPP (.3gp) is an MPEG-4 derived container standardized for mobile devices operating on 3G networks. Its audio track is most commonly AAC-LC (Low Complexity profile) at bitrates between 32k and 128k, though legacy devices may use AMR-NB (8 kHz narrowband voice codec) or AMR-WB (16 kHz wideband). The raw .aac output format carries only the AAC bitstream with ADTS (Audio Data Transport Stream) headers, which allows it to be played directly without a container wrapper. One known limitation of raw .aac files is limited metadata support — ID3 tags are not natively part of the ADTS format, so artist/title metadata from the 3GPP file will typically be dropped. If metadata preservation matters, redirect output to a .m4a file instead, which uses the MPEG-4 container and supports iTunes-compatible metadata atoms. The -vn flag is critical here — without it, FFmpeg would attempt to also encode a video stream into the .aac output, which the format does not support and would cause an error. The libfdk_aac encoder (an alternative to the built-in aac encoder) is not included in standard FFmpeg builds but produces marginally better quality at low bitrates if available in a custom build.

Related Tools