Convert 3GP to MOV — Free Online Tool

Convert 3GP mobile video files to QuickTime MOV format, re-encoding the H.264 video stream and upgrading the AAC audio bitrate from mobile-optimized settings to professional-grade quality. Ideal for bringing old phone footage into Apple-native editing workflows like Final Cut Pro or iMovie.

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

3GP files are designed for constrained 3G mobile environments — they typically carry H.264 or H.263 video and low-bitrate AAC audio, often at resolutions like 176x144 or 320x240 with audio at 32–64kbps. Because the 3GP container and MOV container share H.264 codec support, the video stream could theoretically be copied without re-encoding, but this tool re-encodes it using libx264 with CRF 23 to ensure compatibility with MOV's codec profile expectations and to normalize any non-standard encoding parameters common in carrier-locked handsets. The audio is transcoded from the 3GP's low-bitrate AAC to a fresh 128kbps AAC stream, significantly improving fidelity. The -movflags +faststart flag reorganizes the MOV file's metadata index to the front of the file, enabling progressive playback and compatibility with QuickTime-based players.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool — in the browser this runs via FFmpeg.wasm, a WebAssembly port that executes entirely on your device without uploading your 3GP file to any server.
-i input.3gp Specifies the input file — your 3GP video from a mobile device. FFmpeg reads the container and identifies the enclosed video and audio streams for processing.
-c:v libx264 Re-encodes the video stream using the libx264 H.264 encoder, ensuring the output video meets the codec profile requirements expected by QuickTime, Final Cut Pro, and other MOV-native applications — regardless of whether the original 3GP used H.264 or the older H.263 codec.
-c:a aac Transcodes the audio to AAC using FFmpeg's native AAC encoder. This upgrades the audio from the low-bitrate AAC or AMR audio typical in 3GP files to a full-quality AAC stream suited for the MOV container.
-crf 23 Sets the Constant Rate Factor for the H.264 video encode to 23, which is a high-quality default. Given the typically limited source quality of 3GP footage, CRF 23 avoids introducing additional compression artifacts without producing unnecessarily large output files.
-b:a 128k Sets the audio output bitrate to 128kbps — a substantial upgrade from the 32–64kbps commonly found in 3GP audio tracks, resulting in noticeably clearer audio in the MOV output, particularly for voice and music content.
-movflags +faststart Relocates the MOV file's metadata index (moov atom) to the beginning of the file, enabling QuickTime-compatible progressive playback and ensuring the file works correctly when shared via the web or imported into Apple editing software.
output.mov Defines the output filename and, by extension, the container format. The .mov extension instructs FFmpeg to write a QuickTime MOV container, which wraps the newly encoded H.264 video and 128kbps AAC audio streams.

Common Use Cases

  • Importing old 3GP footage recorded on Nokia, Sony Ericsson, or early Android phones into Final Cut Pro or iMovie for a retrospective video project
  • Archiving mobile video from the mid-2000s to early 2010s into a more future-proof container that preserves compatibility with macOS and Apple ecosystem tools
  • Preparing 3GP clips for use in professional video editing timelines where MOV is the native or preferred interchange format
  • Upscaling the audio quality of a 3GP recording — for example, a field interview captured on a feature phone — from 32kbps to 128kbps AAC before including it in a documentary edit
  • Converting 3GP video received via MMS or downloaded from older mobile platforms for playback on modern Apple devices that may no longer support the 3GP container natively
  • Normalizing a batch of legacy mobile clips to a consistent MOV format before ingesting them into a media asset management system

Frequently Asked Questions

Not in terms of recovering lost detail — 3GP files are heavily compressed for mobile transmission, so the original quality ceiling is set at capture time. The conversion re-encodes using H.264 at CRF 23, which is a high-quality setting, but it cannot restore resolution or detail that the original 3GP encoding discarded. What you do gain is better compatibility and a higher-quality audio track, since the audio is re-encoded at 128kbps instead of the typical 32–64kbps found in 3GP files.
3GP was designed for 3G networks with strict bandwidth and storage limits, so most devices recorded at resolutions like 176x144 (QCIF) or 320x240 (QVGA). The MOV conversion faithfully preserves whatever resolution the 3GP file contained — it does not upscale the video. If you need a larger frame size, you would need to add a scale filter to the FFmpeg command, but be aware that upscaling heavily compressed mobile footage rarely produces satisfying results.
Yes — MOV is a significantly more capable container than 3GP. While 3GP does not support chapters, multiple audio tracks, or subtitle streams, MOV supports all of these. However, since the source 3GP file contains none of these elements, the converted MOV will not automatically gain them. You would need to add those elements separately using additional FFmpeg arguments or a video editing application after the initial conversion.
Adjust the -b:a flag to change the audio bitrate. The default is 128k, which is a significant upgrade from typical 3GP audio. For a more compact file, you can lower it to 96k or 64k. For the best possible audio reproduction from the source — useful if the 3GP was recorded at a higher quality setting — try 192k or 256k. For example: ffmpeg -i input.3gp -c:v libx264 -c:a aac -crf 23 -b:a 192k -movflags +faststart output.mov
Yes, on macOS or Linux you can use a shell loop: for f in *.3gp; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k -movflags +faststart "${f%.3gp}.mov"; done. On Windows Command Prompt, use: for %f in (*.3gp) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k -movflags +faststart "%~nf.mov". The browser-based tool processes one file at a time, so the FFmpeg command is the best path for bulk conversion of large archives.
The -movflags +faststart flag moves the MOV file's metadata (the 'moov atom') from the end of the file to the beginning. This has no effect on video or audio quality whatsoever, but it makes the file begin playing before it is fully downloaded, which is essential for web streaming and QuickTime compatibility. Without it, some players and platforms must download the entire file before playback can start. It's especially valuable when the converted MOV will be shared or hosted online.

Technical Notes

3GP containers from real-world devices often contain non-standard codec profiles, unusual sample rates (like 8000Hz mono audio), or H.263 video rather than H.264 — the latter will always require a full re-encode to H.264 for MOV compatibility. The re-encoding step with libx264 at CRF 23 ensures the output is profile-compliant for QuickTime and Final Cut Pro ingestion. One important caveat is metadata: 3GP files sometimes carry GPS coordinates, device model, and creation timestamp in their metadata atoms — MOV supports equivalent metadata fields, but not all 3GP metadata tags map directly to MOV tags, so some device-specific metadata may be lost or silently dropped during conversion. The audio upgrade from typical 3GP bitrates (32–64kbps) to 128kbps AAC is one of the most perceptible quality improvements in this conversion, particularly for voice recordings. Note that 3GP does not support transparency or subtitle streams, so MOV's capability in these areas is not leveraged by this conversion unless additional sources are added. Files larger than 1GB should be processed using the FFmpeg command directly on your desktop, as the browser tool has a 1GB processing limit.

Related Tools