Convert 3GPP to AVI — Free Online Tool

Convert 3GPP mobile video files to AVI format, re-encoding the video with H.264 (libx264) and transcoding the AAC audio track to MP3 (libmp3lame) for broad desktop compatibility. This is especially useful for bringing older mobile recordings into editing workflows and legacy media players that expect AVI containers with MP3 audio.

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 use an MPEG-4 derived container optimized for low-bandwidth mobile transmission, typically carrying H.264 video and AAC audio. Because AVI does not natively support AAC audio, the audio stream must be transcoded from AAC to MP3 using the LAME encoder — this is a full decode-and-re-encode step that introduces a small additional quality loss. The H.264 video stream is also re-encoded (not remuxed) into the AVI wrapper at CRF 23, since AVI handles H.264 differently than the MP4-family containers 3GPP is based on. The result is a standard AVI file with interleaved MP3 audio and H.264 video, compatible with virtually all desktop media players and older video editing software.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg program, the open-source multimedia processing engine that handles all the decoding, encoding, and container remuxing in this conversion. This tool runs FFmpeg compiled to WebAssembly (FFmpeg.wasm) directly in your browser.
-i input.3gp Specifies the input file — a 3GPP container, which FFmpeg demuxes to extract the raw H.264 video stream and AAC audio stream for processing.
-c:v libx264 Sets the video encoder to libx264, re-encoding the H.264 video stream from the 3GPP source into a new H.264 stream suitable for the AVI container. This is a full transcode, not a stream copy, because the container differences require re-wrapping the bitstream.
-c:a libmp3lame Transcodes the AAC audio from the 3GPP file to MP3 using the LAME encoder. This step is necessary because AAC audio is not reliably supported inside AVI, whereas MP3 is the universally expected audio format for AVI files.
-crf 23 Sets the Constant Rate Factor for the libx264 video encoder to 23, the default quality level. For typical low-bitrate 3GPP mobile footage, this value usually produces output that meets or exceeds the source quality without unnecessarily bloating the output AVI file size.
-b:a 128k Sets the MP3 audio bitrate to 128 kilobits per second, the standard default for AVI output. This is significantly higher than the audio bitrates typically found in 3GPP files encoded for 3G transmission, so audio quality should be preserved relative to the source.
output.avi Specifies the output filename and tells FFmpeg to write the result as an AVI container. FFmpeg infers the RIFF/AVI container format from the .avi extension and interleaves the re-encoded H.264 and MP3 streams accordingly.

Common Use Cases

  • Opening old mobile phone recordings in legacy video editors like VirtualDub or older versions of Windows Movie Maker that only accept AVI input.
  • Archiving 3G-era mobile footage in a widely-recognized container so the files remain playable on Windows PCs without installing codec packs or media players that support MP4-family containers.
  • Preparing mobile-shot clips for use in broadcast or industrial workflows that mandate AVI delivery with MP3 audio tracks.
  • Converting 3GPP videos from early smartphones or feature phones to AVI so they can be imported into DVD authoring software that doesn't recognize the 3GPP container.
  • Re-packaging low-resolution 3GPP footage for use in older video kiosk or digital signage systems that only accept AVI files.
  • Recovering video content from 3GPP files produced by MMS messages or early mobile apps and integrating them into an AVI-based archive.

Frequently Asked Questions

Yes, some quality loss occurs because this conversion requires full re-encoding of both streams. The video is re-encoded from H.264 to H.264 inside a new AVI wrapper (a transcode, not a remux), and the audio is transcoded from AAC to MP3. Since 3GPP files are already lossy and typically encoded at low bitrates for mobile use, the additional generation loss from re-encoding at CRF 23 and 128k MP3 is usually minor and visually imperceptible for most source material.
The AVI container format has very limited official support for AAC audio. While some players can handle AAC-in-AVI with the right codec installed, it is non-standard and widely incompatible. Converting the audio to MP3 using LAME ensures the output AVI plays correctly in virtually every media player, editing application, and operating system that supports AVI without requiring additional codecs.
3GPP was specifically designed for mobile transmission over 3G networks, so files are heavily compressed at very low bitrates. AVI with H.264 at CRF 23 and 128k MP3 audio typically targets a higher quality level than the source 3GPP file was encoded at, which increases file size. Additionally, the AVI container itself has overhead from its interleaved structure and index chunks that does not exist in the more compact MP4-family 3GPP container.
No. 3GPP files can embed metadata such as recording timestamps, GPS coordinates, and device information in MP4-style atoms. The AVI container has a much more limited and different metadata structure (RIFF INFO chunks), and FFmpeg does not automatically map 3GPP-specific metadata fields into AVI during this conversion. If preserving metadata is important, you should extract it separately before converting.
To adjust video quality, change the CRF value: lower numbers like -crf 18 produce higher quality and larger files, while higher numbers like -crf 28 produce smaller files with more compression. To change audio quality, modify the -b:a value, for example using -b:a 192k for higher-fidelity MP3 audio or -b:a 64k to further reduce file size. For typical 3GPP source material recorded at low bitrates, the default CRF 23 and 128k settings usually exceed the original quality ceiling.
Yes. On Linux or macOS you can use a shell loop: for f in *.3gp; do ffmpeg -i "$f" -c:v libx264 -c:a libmp3lame -crf 23 -b:a 128k "${f%.3gp}.avi"; done. On Windows Command Prompt, use: for %f in (*.3gp) do ffmpeg -i "%f" -c:v libx264 -c:a libmp3lame -crf 23 -b:a 128k "%~nf.avi". Each 3GPP file will be converted individually and saved as a matching AVI file in the same directory.

Technical Notes

3GPP is built on the ISO Base Media File Format (the same foundation as MP4), so the H.264 video bitstream inside a 3GPP file is structurally similar to what you'd find in an MP4. However, AVI uses a fundamentally different container architecture — RIFF-based with interleaved audio/video chunks and an index at the file end — which means the H.264 stream cannot simply be remuxed and must be re-encoded. 3GPP files also typically carry low-resolution video (often 176×144 or 320×240 from older devices) and mono or low-bitrate stereo AAC audio, meaning the CRF 23 and 128k MP3 defaults in this command will frequently produce output that is technically higher quality than the source. The AVI format does not support the -movflags +faststart optimization used by 3GPP for streaming, but AVI's interleaved structure achieves similar playback-readiness through index-based seeking. Note that AVI has a practical file size limit of around 2GB for the standard OpenDML extension and is not suitable for very long recordings; for lengthy 3GPP video archives, consider MP4 as an alternative target format.

Related Tools