Convert 3GPP to 3GP — Free Online Tool

Convert 3GPP files to 3GP format using H.264 video and AAC audio encoding, optimized for mobile playback on low-bandwidth 3G networks. Both formats share the same mobile-first heritage, making this conversion ideal for ensuring maximum compatibility across older and newer 3G-capable devices.

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

Despite 3GPP and 3GP being closely related mobile container formats, this conversion re-encodes both the video and audio streams rather than simply remuxing. The video is encoded using the H.264 (libx264) codec with a Constant Rate Factor of 23, which balances file size and visual quality well for small-screen mobile playback. The audio is encoded to AAC at 64k bitrate, appropriate for the bandwidth constraints 3GP was designed for. A critical scaling filter — scale=trunc(iw/2)*2:trunc(ih/2)*2 — is applied to ensure the output dimensions are always divisible by 2, a hard requirement for H.264 encoding that prevents codec errors when the source has odd pixel dimensions. The output is a 3GP container specifically structured for mobile device compatibility and streaming over constrained 3G connections.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg command-line tool, which handles the entire conversion pipeline from reading the 3GPP input through encoding and writing the 3GP output.
-i input.3gp Specifies the input file, a 3GPP container (which uses the same .3gp extension as the output but may follow the broader 3GPP specification). FFmpeg detects the container format and available video and audio streams automatically.
-c:v libx264 Encodes the video stream using the H.264 codec via libx264, the standard video codec for 3GP files and widely supported by 3G mobile device hardware decoders.
-c:a aac Encodes the audio stream using AAC, the preferred audio codec for 3GP containers. AAC delivers better audio quality than MP3 at the low bitrates (64k and below) typical of 3G mobile video.
-crf 23 Sets the Constant Rate Factor for H.264 video encoding to 23, a quality level well-suited for the small resolutions common in 3GP video. Lower values produce better quality and larger files; higher values (up to 51) produce smaller but more compressed files.
-b:a 64k Sets the AAC audio bitrate to 64 kilobits per second, balancing audio clarity with the low-bandwidth constraints that 3GP was specifically designed to meet for 3G network delivery.
-vf scale=trunc(iw/2)*2:trunc(ih/2)*2 Applies a video filter that rounds the output width and height down to the nearest even number. H.264 encoding strictly requires dimensions divisible by 2, and some 3GPP source files from mobile devices have non-standard odd pixel dimensions that would otherwise cause the conversion to fail.
output.3gp Defines the output filename with the .3gp extension, telling FFmpeg to write a 3GP container file structured for mobile device playback and optimized for low-bandwidth 3G streaming.

Common Use Cases

  • Standardizing 3GPP video files recorded on older Nokia or Sony Ericsson phones into 3GP format recognized by a wider range of legacy mobile media players
  • Preparing mobile video content for distribution on platforms or messaging systems that specifically require the 3GP container rather than the broader 3GPP specification
  • Re-encoding a 3GPP file with inconsistent or non-standard video dimensions to fix playback errors caused by odd pixel sizes, which the scaling filter corrects automatically
  • Reducing the file size of 3GPP video clips before transferring them over Bluetooth or MMS, taking advantage of 3GP's aggressive compression defaults
  • Converting mobile video recorded in 3GPP format for playback on feature phones or embedded vehicle or device screens that only accept the 3GP container
  • Archiving or organizing a collection of old mobile phone videos by normalizing them all to a single 3GP format with consistent H.264 and AAC encoding parameters

Frequently Asked Questions

3GPP is the broader multimedia container specification from the Third Generation Partnership Project, while 3GP is a more constrained subset specifically designed for delivery on 3G mobile networks with strict limits on bitrate and resolution. Although they are closely related, the codecs, metadata structures, and compatibility flags differ enough that a direct container copy is unreliable. Re-encoding with H.264 and AAC ensures the output is a clean, spec-compliant 3GP file that plays correctly on mobile devices, rather than a relabeled 3GPP container that may fail on stricter players.
Since both the input and output are lossy formats, re-encoding does introduce a second generation of compression loss. However, with a CRF value of 23 applied to H.264, the quality degradation is minimal for typical mobile video resolutions such as 176x144 or 320x240. If the source 3GPP file was already heavily compressed at a low bitrate, the output quality will be constrained by the source, not the encoder. You can lower the CRF value (e.g., to 18) in the FFmpeg command for higher quality at the cost of a larger file.
The scale=trunc(iw/2)*2:trunc(ih/2)*2 filter ensures the output video width and height are both divisible by 2. H.264 encoding requires even-numbered pixel dimensions, and mobile video captured in 3GPP format occasionally has odd dimensions due to inconsistent device implementations. If you remove this filter and your source has odd dimensions, FFmpeg will throw an error such as 'width not divisible by 2' and the conversion will fail. The filter is safe to keep even when dimensions are already even, as it becomes a no-op in that case.
Video quality is controlled by the -crf flag, which accepts values from 0 (lossless) to 51 (worst quality). The default of 23 is a good balance for mobile video, but you can use values like 28 or 32 to produce smaller files suitable for MMS or constrained storage, or drop to 18 for near-transparent quality. Audio bitrate is set with -b:a; reducing it to 32k noticeably shrinks file size with acceptable quality for voice-heavy content, while 96k or 128k is better for music. For example: ffmpeg -i input.3gp -c:v libx264 -c:a aac -crf 28 -b:a 32k -vf scale=trunc(iw/2)*2:trunc(ih/2)*2 output.3gp
Neither 3GPP nor 3GP supports subtitles or chapter markers in any practical implementation, so none of that data will be present in the output. Basic metadata such as title or creation date embedded in the 3GPP container may not be carried over, as the re-encoding process does not explicitly map metadata fields between the two container variants. If preserving metadata is important, you can add -map_metadata 0 to the FFmpeg command to attempt to copy available metadata tags.
Yes. On Linux or macOS, you can loop over all 3GPP files in a directory with a one-liner: for f in *.3gp; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 64k -vf scale=trunc(iw/2)*2:trunc(ih/2)*2 "${f%.3gp}_out.3gp"; done. On Windows Command Prompt, use: for %f in (*.3gp) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 64k -vf scale=trunc(iw/2)*2:trunc(ih/2)*2 "%~nf_out.3gp". Batch processing is particularly useful when normalizing a large archive of old mobile phone videos to consistent 3GP encoding parameters.

Technical Notes

Both 3GPP and 3GP are derived from the ISO Base Media File Format (ISOBMFF), sharing structural DNA with MP4, but they are tuned for the constraints of 3G mobile networks — low resolution, low bitrate, and limited processing power. This conversion uses H.264 Baseline or Main profile via libx264, which is broadly compatible with the hardware decoders found on 3G-era feature phones and early smartphones. AAC audio at 64k is the standard choice for 3GP, as it offers better quality than MP3 at equivalent bitrates, which matters when storage and bandwidth are limited. One known limitation is that 3GP does not support multiple audio tracks, subtitles, or chapter navigation, so any such streams in the source 3GPP file are silently dropped. The -movflags +faststart flag used in 3GPP input processing is not applied to the 3GP output, since 3GP streaming relies on the container's own mobile-optimized structure rather than the MP4-style moov atom relocation that faststart provides. The scaling filter is non-negotiable for reliable H.264 output and should not be removed without verifying the source dimensions are already even.

Related Tools