Convert AVI to 3GPP — Free Online Tool

Convert AVI files to 3GPP (.3gp) format optimized for mobile devices, re-encoding video with H.264 and audio with AAC at low bitrates suited for 3G-era phones and embedded mobile players. This conversion trades AVI's legacy PC-centric container for a mobile-standardized format with fast-start streaming support.

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

AVI stores interleaved audio and video streams in Microsoft's legacy RIFF-based container, commonly using MP3 audio and H.264 or MJPEG video. Converting to 3GPP requires full re-encoding of both streams: the video is encoded with libx264 at CRF 23 (a perceptually good balance for small screens), and the audio is transcoded from MP3 to AAC at 64k — a lower bitrate appropriate for mobile playback where bandwidth and storage are constrained. The output container also includes the -movflags +faststart flag, which relocates the MP4/3GP metadata atom (moov) to the beginning of the file, enabling progressive playback and streaming before the full file is downloaded. AVI's interleaved structure and lack of streaming-friendly metadata make it unsuitable for mobile delivery without this full remux and re-encode.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg program, the open-source multimedia processing engine that this browser tool runs via WebAssembly. All conversion logic — demuxing AVI, decoding streams, re-encoding, and muxing into 3GP — is handled by FFmpeg under the hood.
-i input.avi Specifies the input file in AVI (Audio Video Interleave) format. FFmpeg reads this legacy Microsoft RIFF-based container and extracts the contained video and audio streams for re-encoding into the 3GPP output.
-c:v libx264 Sets the video encoder to libx264, the standard H.264 encoder. Even if the source AVI already uses H.264, a full re-encode is required because the 3GPP container has different stream constraints and the bitrate needs to be tuned for mobile delivery.
-c:a aac Transcodes the audio stream to AAC (Advanced Audio Coding), replacing whatever audio codec the AVI contained — typically MP3 (libmp3lame). AAC is the mandatory audio codec for 3GPP compatibility and achieves better quality than MP3 at the same low bitrates used in mobile delivery.
-crf 23 Sets the Constant Rate Factor for the H.264 video encode to 23, which is the perceptual quality midpoint for 3GPP output (valid range 18–28). At this value, the video is compressed efficiently for mobile file sizes while maintaining acceptable visual quality on small screens typical of 3GP target devices.
-b:a 64k Sets the audio bitrate to 64 kilobits per second for the AAC audio stream. This is the standard default for 3GPP audio, appropriate for mobile playback over 3G networks and compatible with the low-power audio decoders found in feature phones and basic mobile media players.
-movflags +faststart Moves the 3GP file's moov metadata atom from the end of the file to the beginning after encoding completes. This is essential for mobile streaming — without it, a device would need to download the entire file before playback could start, which is impractical on slow mobile connections.
output.3gp Specifies the output filename with the .3gp extension, which tells FFmpeg to mux the encoded H.264 video and AAC audio into the 3GPP container format standardized by the Third Generation Partnership Project for mobile multimedia delivery.

Common Use Cases

  • Preparing archival AVI footage from older camcorders or capture cards to share on feature phones or embedded mobile systems that only support 3GPP playback
  • Reducing the file size of AVI recordings for MMS messaging or upload to older mobile platforms with strict file size and codec requirements
  • Converting AVI video tutorials or short clips for playback on 3G-compatible devices used in regions where data bandwidth is limited
  • Repurposing legacy AVI content from early 2000s digital cameras or screen capture tools into a format compatible with basic Android or feature phone media players
  • Packaging short AVI promotional clips into 3GPP format for distribution through mobile content portals or early mobile app systems that mandate the 3GP container
  • Archiving low-bandwidth versions of AVI training videos for offline viewing on mobile hardware with limited storage and processing power

Frequently Asked Questions

Yes, some quality loss is expected because 3GPP is a lossy-only format and the conversion involves a full re-encode of the video stream. The default CRF 23 setting for libx264 produces visually good results at typical 3GP resolutions (e.g., 176x144 or 320x240), but fine details in high-resolution AVI source files will be more compressed. For best results, ensure your AVI source is clean and consider downscaling the resolution to match the target device's screen.
The 64k default reflects the low-bandwidth origins of the 3GPP format, which was designed for 3G mobile networks where audio clarity is acceptable at that bitrate, especially for speech and mono content. You can increase it up to 128k using the -b:a flag if your source has music or stereo audio worth preserving, but be aware that many legacy 3GP-compatible devices may not handle higher bitrates well. The 3GPP specification and older mobile hardware were optimized for AAC at 64k or below.
The 3GPP format supports only a single audio track, so FFmpeg will select the default (first) audio stream from your AVI file. If your AVI contains multiple audio tracks — such as commentary or a secondary language — only the primary track is carried over. You can explicitly select a different audio track using the -map flag in the FFmpeg command, for example adding -map 0:v:0 -map 0:a:1 to choose the second audio stream.
The -movflags +faststart flag moves the 'moov' metadata atom from the end of the file to the beginning during a post-processing step. This is important for 3GP files because mobile devices and streaming players need the metadata upfront to begin playback without buffering the entire file. AVI files do not have this concept — they use RIFF-based indexing at the end — so this flag is a critical addition when targeting mobile streaming with 3GP.
Video quality is controlled by the -crf flag, where lower values produce higher quality at larger file sizes. The valid range for this 3GP conversion is CRF 18 (near-lossless visually) to CRF 28 (more compressed, smaller file). For example, replace -crf 23 with -crf 18 for better quality or -crf 28 to reduce file size further for data-constrained delivery. Note that CRF 0 and other extreme values available for AVI's libx264 are not in the 3GPP output profile, keeping the output within a mobile-appropriate range.
Yes, you can adapt the displayed command for batch processing in a shell script. On Linux or macOS, use: for f in *.avi; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 64k -movflags +faststart "${f%.avi}.3gp"; done. On Windows Command Prompt: for %f in (*.avi) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 64k -movflags +faststart "%~nf.3gp". This applies the same codec settings to every AVI in the folder and is especially useful for files over 1GB that exceed the browser tool's processing scope.

Technical Notes

The 3GPP format is an MPEG-4 Part 12 derivative (sharing structure with MP4), so the output .3gp file is structurally similar to an MP4 container but with stricter codec and bitrate constraints tailored for mobile. AVI does not support subtitles or chapters natively, and 3GPP does not either, so no subtitle or chapter metadata is lost in this conversion. However, AVI files commonly embed metadata (title, author, creation date) in INFO chunks within the RIFF structure, and this metadata is not automatically mapped to 3GPP container atoms — expect metadata loss unless manually mapped with -metadata flags. AVI's support for multiple audio tracks is collapsed to a single AAC track in 3GPP. Because both the source AVI video (likely H.264 or MJPEG) and the target 3GP video use libx264, there is no codec passthrough possible — the video must be fully decoded and re-encoded, which is CPU-intensive for long files. MJPEG-encoded AVI sources in particular will see significant file size reduction when re-encoded to H.264 for 3GP. The AAC encoder used here is FFmpeg's native AAC implementation, which is compatible with all 3GPP-compliant players and produces cleaner output than MP3 at equivalent low bitrates, making it the right choice for mobile audio.

Related Tools