Convert MP4 to 3GPP — Free Online Tool

Convert MP4 videos to 3GPP format, the legacy mobile container standardized for 3G-era phones and devices. This tool re-encodes your video using H.264 (libx264) and AAC audio at a low 64k bitrate — optimized for the bandwidth and storage constraints 3GPP was designed around.

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

Unlike a simple remux, converting MP4 to 3GP requires active re-encoding tailored to 3GPP's tighter constraints. While both MP4 and 3GP can carry H.264 video and AAC audio, the 3GPP container enforces stricter limitations: no subtitle tracks, no chapter markers, and no multiple audio streams are preserved — all of these are stripped during conversion. The video stream is re-encoded with H.264 at CRF 23 (a medium-quality constant rate factor setting), and the audio is re-encoded to AAC at 64 kbps, which is the 3GPP-appropriate default reflecting the low-bandwidth environments this format targets. The -movflags +faststart flag reorganizes the file's metadata to the front, enabling progressive playback on slower mobile connections.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — the open-source multimedia processing engine that handles all decoding, filtering, re-encoding, and container muxing for this MP4-to-3GP conversion.
-i input.mp4 Specifies the source MP4 file as input. FFmpeg reads the MP4 container and demuxes its video, audio, and any other streams (subtitles, chapters) for processing.
-c:v libx264 Re-encodes the video stream using the libx264 H.264 encoder, which is the primary video codec supported by the 3GPP container and broadly compatible with the mobile devices 3GP targets.
-c:a aac Re-encodes the audio stream to AAC using FFmpeg's native AAC encoder, which is the standard audio codec for 3GPP and required for compatibility with 3G-era mobile devices and players.
-crf 23 Sets the Constant Rate Factor for H.264 video encoding to 23, which is the standard default balancing visual quality and file size — appropriate for 3GP content where both bandwidth and storage are traditionally constrained.
-b:a 64k Sets the AAC audio bitrate to 64 kilobits per second, which is the 3GPP-appropriate default reflecting the low-bandwidth mobile environments this format was designed for — roughly half the bitrate typically used in MP4 files.
-movflags +faststart Relocates the file's moov atom (metadata index) to the start of the 3GP file, enabling the video to begin playing as soon as it starts downloading — critical for mobile streaming over slow 3G connections.
output.3gp Defines the output filename with the .3gp extension, signaling to FFmpeg to mux the re-encoded H.264 video and AAC audio into the 3GPP container format.

Common Use Cases

  • Preparing video content for playback on older Nokia, Sony Ericsson, or early Android devices that only support 3GP natively
  • Uploading short video clips to legacy MMS messaging systems or carrier portals that require the 3GP container format
  • Archiving or reproducing original mobile video formats for software compatibility testing or emulation of early-2000s mobile applications
  • Reducing file size dramatically for storage or transfer on devices with very limited internal memory, taking advantage of 3GP's low-bitrate audio default
  • Supplying video assets to embedded systems, kiosk firmware, or custom hardware that was built around 3GPP playback libraries
  • Converting MP4 footage for use in older video editing or multimedia authoring tools that only accept 3GP as an input format

Frequently Asked Questions

No — the 3GPP container format does not support subtitle tracks or chapter markers, so any subtitles or chapters present in your source MP4 will be silently dropped during conversion. If your MP4 has burned-in subtitles (rendered directly into the video pixels), those will of course remain visible since they are part of the video stream itself. If preserving text subtitles is important, 3GP is not the right target format.
3GPP was designed specifically for 3G mobile networks and low-end handsets, where bandwidth and storage were severely limited. The 64 kbps AAC default reflects that design context — it produces intelligible audio for speech and acceptable quality for music at a fraction of the file size. If you're converting for a modern use case where storage is not a concern, you can adjust the -b:a flag up to 96k or 128k, but note that many original 3GP-capable devices will not benefit from the higher bitrate.
The 3GPP container supports only a single audio track, so FFmpeg will automatically select the default or first audio stream from your MP4 and re-encode it to AAC at 64 kbps. Any additional audio tracks (e.g., alternate language dubs or commentary tracks) are discarded. If you need a specific non-default audio track, you would need to modify the FFmpeg command to add -map 0:v:0 -map 0:a:N, replacing N with the zero-based index of the desired audio stream.
File size reduction varies based on your source MP4's bitrate, but it is typically substantial. A typical MP4 might carry audio at 128–256 kbps; the 3GP output defaults to 64 kbps AAC, cutting audio data roughly in half or more. The H.264 video re-encoding at CRF 23 targets similar visual quality to a standard MP4 encode, so video size depends heavily on the source. For heavily compressed source files, the output may not be dramatically smaller; for high-bitrate MP4s, you could see 40–70% size reduction driven primarily by the lower audio bitrate and any resolution differences.
Yes. To adjust video quality, change the -crf value — lower numbers (e.g., 18) produce better quality at larger file sizes, while higher numbers (e.g., 28) produce smaller files with more visible compression. The valid CRF range for this 3GP conversion is 18–28. To change audio quality, replace 64k in -b:a 64k with a value like 96k or 128k. For example: ffmpeg -i input.mp4 -c:v libx264 -c:a aac -crf 20 -b:a 96k -movflags +faststart output.3gp would give you noticeably better quality at the cost of a larger file.
Yes — on Linux or macOS you can wrap the command in a shell loop: for f in *.mp4; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 64k -movflags +faststart "${f%.mp4}.3gp"; done. On Windows Command Prompt, use: for %f in (*.mp4) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 64k -movflags +faststart "%~nf.3gp". This is particularly useful for batch-converting large collections of files that exceed the 1GB browser limit.

Technical Notes

3GPP (.3gp) is a subset of the MPEG-4 Part 12 container family, sharing structural DNA with MP4 but deliberately constrained for mobile delivery. The format supports only H.264 (Baseline or Main Profile) and MJPEG for video, and AAC or MP3 for audio — higher-tier codecs like H.265/HEVC or Opus found in modern MP4s are not valid in 3GPP and cannot be carried over. Any VP9 video or Opus audio in a source MP4 must be fully re-encoded, not simply remuxed. The -movflags +faststart flag is included because 3GP files are commonly streamed over slow mobile connections; this flag moves the moov atom (the container's index structure) to the beginning of the file so playback can begin before the full file downloads. Metadata fields common to MP4 (title, comment, artist tags) may be partially preserved depending on FFmpeg version, but cover art embedded in the MP4 will be dropped since 3GPP has no standardized mechanism for it. Transparency is not supported by either format in this conversion path. Resolutions above 720p are technically outside the original 3GPP specification, though modern devices and players will typically handle them without issue.

Related Tools