Convert MPEG to 3GPP — Free Online Tool
Convert MPEG files (MPEG-1/MPEG-2 video with MP2 audio) to 3GPP format optimized for mobile devices. This tool re-encodes the legacy MPEG stream using H.264 (libx264) and AAC audio — replacing the aging MPEG-2/MP2 codecs with modern compression that dramatically reduces file size while maintaining acceptable quality on 3G-compatible phones and tablets.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your MPEG file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
MPEG files use MPEG-1 or MPEG-2 video compression alongside MP2 audio — codecs developed in the early 1990s that are not natively supported by the 3GPP container. Because there is no codec overlap between the two formats, this conversion requires full re-encoding of both streams. The video is re-encoded from MPEG-2 to H.264 using libx264 with a CRF of 23, which applies perceptual compression tuned for efficient delivery at low bitrates. The MP2 audio track is transcoded to AAC at 64k, which is the standard choice for 3GPP's mobile-first use case. The -movflags +faststart flag reorganizes the output file's metadata to the beginning of the file, enabling progressive playback on mobile networks before the download completes.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool. In the browser version, this runs via FFmpeg.wasm compiled to WebAssembly, executing the identical logic as desktop FFmpeg without any server upload. |
-i input.mpeg
|
Specifies the input MPEG file. FFmpeg will detect whether it contains MPEG-1 or MPEG-2 video and MP2, MP3, or AAC audio, and demux all streams for re-encoding into the 3GPP container. |
-c:v libx264
|
Re-encodes the MPEG-1 or MPEG-2 video stream using the H.264 encoder (libx264), which is the standard video codec for 3GPP. H.264 achieves significantly better compression than MPEG-2 at equivalent quality levels, resulting in a smaller output file. |
-c:a aac
|
Transcodes the MPEG source audio (typically MP2) to AAC, the default and most compatible audio codec for 3GPP. AAC offers better audio quality than MP2 at the same or lower bitrate, which is why it replaced MP2 as the mobile audio standard. |
-crf 23
|
Sets the Constant Rate Factor for the H.264 encoder to 23, which is the default balanced quality setting. Lower values (minimum 18 in this tool) produce higher quality and larger files; higher values (maximum 28) produce smaller files with more visible compression artifacts — important when targeting low-storage mobile devices. |
-b:a 64k
|
Sets the AAC audio bitrate to 64 kilobits per second, which is the standard target for 3GPP audio designed for 3G mobile streaming. This is lower than the MPEG source's typical MP2 bitrate, but AAC's superior efficiency means perceived quality remains acceptable for voice and general content. |
-movflags +faststart
|
Relocates the 3GP file's metadata header to the beginning of the file after encoding completes. This is essential for 3GPP's mobile streaming use case — it allows a phone to begin playing the video over a 3G connection before the full file has downloaded. |
output.3gp
|
Specifies the output filename and the .3gp extension, which signals FFmpeg to wrap the H.264 video and AAC audio into a 3GPP container compatible with mobile devices and 3G-era playback systems. |
Common Use Cases
- Preparing archived broadcast or DVD-sourced MPEG recordings for playback on older Android or feature phones that only support 3GPP/3GP files
- Reducing the file size of large MPEG-2 video files (such as captured TV recordings) for sharing over MMS or low-bandwidth mobile connections
- Converting legacy MPEG training or instructional videos into a 3G-compatible format for distribution to field workers using older mobile devices
- Packaging MPEG video content from legacy broadcast archives into 3GPP for upload to platforms or CMS systems that require mobile-native formats
- Converting MPEG-1 video captures from older camcorders or VHS digitizers into a format that can be streamed progressively on mobile browsers
- Migrating MPEG video assets from early 2000s multimedia projects into 3GPP for inclusion in mobile app bundles targeting low-spec devices
Frequently Asked Questions
Some quality loss is inevitable because both the MPEG-2 source and the H.264 output are lossy formats, meaning you are decoding a compressed stream and re-compressing it. However, H.264 at CRF 23 is actually a more efficient codec than MPEG-2, so the output often looks comparable or better at a significantly smaller file size. The most noticeable quality difference tends to appear in fast-motion scenes or high-detail areas where MPEG-2's older compression artifacts compound with H.264 re-encoding.
3GPP was designed specifically for mobile delivery over 3G networks where bandwidth is limited, so low audio bitrates are the norm. The default of 64k AAC is standard for 3GPP and is actually perceptually competitive with higher MP2 bitrates because AAC is a more efficient codec than MP2. If your source MPEG has music or high-fidelity audio that needs preservation, you can raise the -b:a flag to 96k or 128k in the FFmpeg command, though 128k is the maximum supported audio quality option for this 3GPP output.
3GP files using H.264 video and AAC audio are broadly supported on modern Android and iOS devices — both operating systems have included native 3GP playback for over a decade. The format is legacy in concept but the codecs used in this conversion (libx264 + AAC) are modern and widely compatible. You may find that some media players on desktop platforms require additional codecs, but mobile playback is generally seamless.
The -movflags +faststart flag moves the MP4/3GP file's metadata (the 'moov atom') from the end of the file to the beginning. Without this, a media player or mobile browser cannot begin playing the video until the entire file has downloaded. With +faststart, playback can begin almost immediately over a mobile network, which is critical for the 3GPP format's primary use case of streaming over 3G connections. It has no effect on file size or quality.
The -crf flag controls H.264 video quality on a scale from 18 (highest quality, largest file) to 28 (lowest quality, smallest file), with 23 as the default. To improve visual quality for a source MPEG with high detail, lower the value — for example, replace '-crf 23' with '-crf 18'. To further shrink the file for MMS delivery or very low-bandwidth networks, increase it to '-crf 28'. Each step of roughly 6 CRF units approximately halves or doubles the output file size.
Yes. On Linux or macOS, you can wrap the command in a shell loop: for f in *.mpeg; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 64k -movflags +faststart "${f%.mpeg}.3gp"; done. On Windows Command Prompt, use: for %f in (*.mpeg) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 64k -movflags +faststart "%~nf.3gp". This is especially useful for converting large MPEG archives that exceed the browser tool's 1GB per-file limit.
Technical Notes
MPEG files encoded with MPEG-2 video and MP2 audio share no native codec compatibility with the 3GPP container, making full transcoding of both streams mandatory — there is no remux-only path available for this conversion. The libx264 encoder used for the H.264 output supports the Baseline and Main profiles most compatible with 3GPP-targeted devices; for very old feature phones, you may want to add '-profile:v baseline -level 3.0' to the command to ensure compatibility. The 3GPP container itself is structurally very similar to MP4 (both are derived from the ISO Base Media File Format), which is why the -movflags +faststart flag works identically here as it does with MP4 outputs. One important limitation: MPEG files occasionally carry multiple audio tracks or embedded timecode metadata from broadcast sources, but the 3GPP format does not support multiple audio tracks and this metadata will be dropped during conversion. If your MPEG source has an aspect ratio encoded via display flags rather than sample aspect ratio (common in broadcast MPEG-2), verify the output dimensions after conversion, as libx264 may interpret the source geometry differently than your original player did.