Convert 3G2 to MKV — Free Online Tool
Convert 3G2 files from older CDMA mobile devices into MKV, a modern open-standard container that unlocks subtitle tracks, chapter markers, and multiple audio streams — all re-encoded with H.264 and AAC using FFmpeg running directly in your browser.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your 3G2 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
3G2 is a tightly constrained container built for CDMA mobile networks like Verizon and Sprint-era phones, typically carrying H.264 or MJPEG video alongside AAC or MP3 audio in a format closely related to MP4/MOV. During this conversion, FFmpeg re-encodes the video stream using the libx264 H.264 encoder and the audio stream using the AAC encoder, then wraps the result in a Matroska (MKV) container. Because 3G2 files were originally encoded at low bitrates optimized for mobile transmission, the re-encoding step uses CRF 23 — a perceptually transparent quality level for most source content — so the output quality will be at or near the ceiling of what the source footage can provide. The -movflags +faststart flag from the 3G2 input side is irrelevant to MKV output, which uses its own seek index structure. The resulting MKV file is a much more capable archive format that can later accept subtitles, chapter metadata, or additional audio tracks without re-encoding the video.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary — in this browser-based tool, this runs as a WebAssembly (FFmpeg.wasm) instance entirely within your browser tab, with no file data sent to any server. |
-i input.3g2
|
Specifies the input file in 3G2 format — a mobile container from the 3GPP2/CDMA standard. FFmpeg reads the container structure and demuxes the video and audio elementary streams for processing. |
-c:v libx264
|
Re-encodes the video stream using the libx264 H.264 encoder. Since 3G2 source video is often encoded at low mobile bitrates, this produces a High Profile H.264 stream in the MKV output that is compatible with virtually all modern desktop media players, smart TVs, and video editors. |
-c:a aac
|
Re-encodes the audio stream using FFmpeg's native AAC encoder. 3G2 files commonly carry AAC audio already, but the re-encode ensures the audio is properly formatted for the MKV container's stream structure and removes any 3G2-specific audio framing constraints. |
-crf 23
|
Sets the Constant Rate Factor for the libx264 encoder to 23, the default quality level. For typical low-resolution 3G2 mobile footage, CRF 23 delivers perceptually transparent quality relative to the source while keeping file sizes manageable; increase this number (e.g., 28) to reduce file size, or decrease it (e.g., 18) for higher fidelity. |
-b:a 128k
|
Sets the AAC audio bitrate to 128 kilobits per second. This is well above the bitrate of most 3G2 audio tracks (which were often 32–64k for mobile delivery), so the output audio quality will match or exceed the source without bloating the file size. |
output.mkv
|
Specifies the output file with the .mkv extension, which tells FFmpeg to use the Matroska muxer. The resulting file will be a valid MKV container holding the H.264 video and AAC audio streams, ready for playback, editing, or further enrichment with subtitles and chapter data. |
Common Use Cases
- Archiving old video clips recorded on CDMA-era phones (e.g., Verizon LG or Samsung devices from the 2000s–2010s) into a modern container that media players like VLC, Kodi, and Plex can fully index and scrub.
- Preparing 3G2 footage for a video editing timeline in software like DaVinci Resolve or Kdenlive, which handle MKV with H.264 more reliably than the 3G2 container.
- Converting a 3G2 clip to MKV so you can later add a subtitle track (e.g., a translated SRT file) using mkvtoolnix or another MKV muxer — something 3G2 does not support at all.
- Organizing a large personal video archive from multiple phone generations into a single consistent container format, since MKV's open standard ensures long-term playback compatibility.
- Converting mobile-recorded 3G2 clips before uploading to a local media server (Jellyfin, Emby) that uses MKV as its preferred archival format for metadata tagging and chapter support.
- Extracting and re-wrapping 3G2 video from an old phone backup into MKV so the footage can be embedded in a documentary project that requires a container supporting multiple audio language tracks.
Frequently Asked Questions
No — 3G2 files were encoded at low bitrates designed for CDMA mobile transmission, and that quality ceiling is baked into the source pixels. Re-encoding with libx264 at CRF 23 will faithfully reproduce what is in the source, but it cannot recover detail that was discarded during the original mobile encoding. The MKV container itself adds no quality; it simply provides a more capable wrapper. If anything, the re-encoding step introduces a marginal second-generation loss, which at CRF 23 is visually negligible for typical mobile footage.
3G2 files were aggressively compressed for transmission over slow CDMA data networks, often at bitrates of 100–500 kbps. When FFmpeg re-encodes the video with libx264 at CRF 23, it targets perceptual quality rather than a fixed bitrate, which can result in a higher bitrate than the original — and therefore a larger file. If you want to match or reduce the file size, you can lower the CRF value (higher number = smaller file, e.g., CRF 28) in the FFmpeg command to accept slightly more compression.
Yes. MKV supports H.264 (libx264) and AAC natively, which are the default codecs used in this conversion and are also the most common codecs found inside 3G2 files. If your original 3G2 happened to use MJPEG video or MP3 audio, those are also supported by MKV, though this tool re-encodes to H.264 and AAC by default for maximum compatibility.
Yes — this is one of the key reasons to convert from 3G2 to MKV. The 3G2 format does not support subtitle tracks or chapter metadata at all, but MKV was specifically designed to hold them. After conversion, you can use a tool like mkvtoolnix (free, cross-platform) to mux in SRT, ASS, or PGS subtitle files, or to add a chapter file, without re-encoding the video stream.
Adjust the -crf value in the command. The CRF (Constant Rate Factor) scale for libx264 runs from 0 (lossless, very large) to 51 (heavily compressed, small). The default here is 23, which is a good general-purpose balance. To reduce file size, increase the number — for example, '-crf 28' produces noticeably smaller files with some quality loss, while '-crf 35' is suitable for archiving very low-resolution mobile footage where further quality loss is acceptable. To raise quality at the cost of a larger file, lower the number toward 18.
Yes. On Linux or macOS, you can use a shell loop: 'for f in *.3g2; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.3g2}.mkv"; done'. On Windows Command Prompt, use: 'for %f in (*.3g2) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.mkv"'. This is especially useful for archiving large collections of old phone clips, which is the primary reason the FFmpeg command is displayed on this page — the browser tool handles files up to 1GB, but your local FFmpeg installation has no such limit.
Technical Notes
3G2 (Third Generation Partnership Project 2) is structurally derived from the ISO Base Media File Format, the same lineage as MP4 and MOV, but it carries specific constraints imposed by 3GPP2 for CDMA network delivery — including strict codec profiles, limited bitrate ceilings, and no support for subtitle streams or chapter atoms. The -movflags +faststart flag applied to 3G2 output (which prepends the moov atom for progressive streaming) is meaningless in MKV output, as Matroska uses its own seeking structure (the Cues element) that is written at the end of the file by default and is handled natively by FFmpeg. MKV's feature set is substantially broader: it supports multiple audio tracks (useful for multilingual archiving), subtitle streams in formats including SRT, ASS, and PGS, chapter metadata, and attachment streams for fonts or cover art. The libx264 encoder used here produces Baseline, Main, or High Profile H.264 depending on content and settings; at CRF 23 with default settings, it defaults to High Profile, which is universally supported by modern desktop and TV players but may not be playable on very old mobile devices — though that is unlikely to matter given the archival intent of this conversion. AAC at 128k is adequate for the mono or low-bitrate stereo audio typically found in 3G2 files from mobile cameras. One known limitation: if your 3G2 file contains EVRC or QCELP audio (proprietary CDMA voice codecs occasionally found in carrier-recorded video), FFmpeg may fail to decode the audio stream; this is rare in user-recorded clips but common in carrier-side MMS content.