Convert 3G2 to Y4M — Free Online Tool
Convert 3G2 video files to Y4M (YUV4MPEG2) uncompressed format directly in your browser. This tool decodes the H.264-encoded video from your 3G2 container into raw YUV pixel data, producing a lossless intermediate file ideal for frame-accurate video processing pipelines.
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 files store video compressed with H.264 (libx264) and audio with AAC, optimized for low-bitrate delivery over CDMA mobile networks. During this conversion, FFmpeg fully decodes the H.264 video stream from the 3G2 container into uncompressed raw YUV frames and writes them into a Y4M file. Y4M is a headerized uncompressed format — every frame is stored as plain YUV pixel data with a small per-frame header, making it trivially readable by video processing tools without any decoding step. Because Y4M carries no audio track (it is a video-only format), the AAC audio from the 3G2 file is discarded. The output file will be dramatically larger than the input, as all the H.264 compression is removed.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool. In the browser, this runs via FFmpeg.wasm compiled to WebAssembly; when run locally, this calls your system-installed FFmpeg binary. The underlying processing logic is identical in both cases. |
-i input.3g2
|
Specifies the input file in 3G2 format. FFmpeg reads the 3G2 container, demuxes it to extract the H.264 video stream and AAC audio stream, and prepares them for processing. The audio stream will ultimately be discarded since Y4M cannot store audio. |
-c:v rawvideo
|
Instructs FFmpeg to encode the output video stream as rawvideo — meaning the fully decoded YUV frames from the H.264 decoder are written directly to disk with no re-compression. This is what makes the output a true uncompressed Y4M file rather than a re-encoded compressed format. |
output.y4m
|
Specifies the output filename with the .y4m extension, which signals FFmpeg to use the YUV4MPEG2 muxer. The .y4m muxer wraps the raw YUV frames with the standard Y4M stream header and per-frame markers, making the output compatible with any tool that accepts the YUV4MPEG2 format. |
Common Use Cases
- Feed mobile-captured 3G2 footage into a lossless video processing pipeline (e.g., vapoursynth or avisynth) that requires uncompressed YUV input to avoid generational quality loss
- Extract individual frames from old 3G2 video files for forensic or archival analysis, using Y4M as an intermediate that any frame extraction tool can read without codec dependencies
- Pipe 3G2 content into a custom encoder or transcoder via stdin, leveraging Y4M's piping-friendly format to chain FFmpeg with other command-line tools without intermediate file writes
- Perform lossless video editing or compositing on 3G2 footage by converting to Y4M first, ensuring no re-encoding artifacts are introduced before the final export
- Validate the decoded visual output of a 3G2 file by inspecting raw YUV data, useful when debugging codec compatibility issues with legacy mobile video content
- Prepare 3G2 video for ingestion into scientific or research video analysis software that expects uncompressed YUV4MPEG2 input rather than compressed container formats
Frequently Asked Questions
3G2 files use H.264 compression, which can achieve compression ratios of 100:1 or more compared to raw video. Y4M stores every frame as uncompressed YUV pixel data with no interframe compression whatsoever. A 10MB 3G2 file can easily expand to several gigabytes as a Y4M file, depending on resolution, frame rate, and duration. This is expected and is precisely the point — Y4M's uncompressed nature makes it suitable for lossless intermediate processing.
No. Y4M (YUV4MPEG2) is a video-only format that has no provision for storing audio streams. The AAC audio track present in your 3G2 file will be silently dropped during conversion. If you need to preserve the audio, extract it separately as a standalone AAC or MP3 file using FFmpeg before or after this conversion.
The decoding of H.264 from 3G2 to raw YUV is mathematically lossless — FFmpeg reconstructs the exact pixel values that the H.264 encoder originally produced. However, any quality loss that existed in the original 3G2 encoding (from when the video was first compressed for mobile transmission) is already baked in and cannot be recovered. The Y4M output is a perfect lossless representation of the decoded 3G2 video, no better and no worse than the source.
Y4M is not a consumer playback format and most standard media players like Windows Media Player or QuickTime will not open it. It is designed as an intermediate format for tools like FFmpeg, VirtualDub, x264, x265, HandBrake (via piping), and video processing libraries. If you need a viewable file, you should convert your 3G2 to a format like MP4 instead. Y4M is the right choice only if you have a specific processing tool that requires it.
The browser-based tool supports files up to 1GB. For larger 3G2 files, copy the displayed command — 'ffmpeg -i input.3g2 -c:v rawvideo output.y4m' — and run it locally in your terminal after installing FFmpeg on your system. The command is identical to what runs in the browser, so results will be the same. Be prepared for very large output files; a 2GB 3G2 input can produce hundreds of gigabytes of Y4M output.
Yes. On Linux or macOS, use a shell loop: 'for f in *.3g2; do ffmpeg -i "$f" -c:v rawvideo "${f%.3g2}.y4m"; done'. On Windows Command Prompt, use: 'for %f in (*.3g2) do ffmpeg -i "%f" -c:v rawvideo "%~nf.y4m"'. Be very mindful of available disk space before batch processing, as Y4M files are uncompressed and multiple files will consume enormous storage.
Technical Notes
The 3G2 container is a close relative of MP4, derived from the MPEG-4 Part 12 base format but standardized by 3GPP2 for CDMA network delivery. Its H.264 video stream is fully compliant with standard ITU-T H.264/AVC, so FFmpeg decodes it without any special handling. The output Y4M format encodes each frame with a small ASCII header line followed by raw planar YUV data, most commonly in the YUV 4:2:0 chroma subsampling scheme that H.264 itself uses internally — meaning no chroma resampling is required and the pixel data maps directly from the decoded H.264 output to the Y4M frames. Y4M preserves the original frame rate and resolution from the 3G2 source. Notably, 3G2 files from older phones often contain non-standard frame rates (e.g., 15fps) or non-standard resolutions (e.g., 176x144 QCIF), and Y4M will faithfully encode these exact parameters in its stream headers. There is no metadata, chapter, or subtitle support in Y4M, so all 3G2 container metadata is lost. If the 3G2 file contains multiple video tracks (uncommon but possible), FFmpeg will convert only the first video stream by default.