Convert 3G2 to TS — Free Online Tool

Convert 3G2 files from legacy CDMA mobile devices into MPEG-2 Transport Stream (TS) format, re-encoding the H.264 video and AAC audio into a broadcast-ready container optimized for streaming pipelines, HLS workflows, and digital television systems. This tool runs entirely in your browser — no upload required.

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

3G2 is a mobile-optimized container descended from the MPEG-4 Part 12 file format family, built around H.264 video and AAC audio designed for low-bandwidth CDMA networks. MPEG-2 Transport Stream (TS) is a fundamentally different container architecture originally designed for broadcast transmission — it uses fixed-size 188-byte packets that allow decoders to resync mid-stream, making it ideal for live streaming and HLS segmentation. During this conversion, the H.264 video stream is re-encoded using libx264 at CRF 23 and the AAC audio is re-encoded at 128k bitrate, both of which are compatible codecs in TS. The 3G2-specific metadata like the 'moov' atom structure and mobile-oriented flags (such as faststart) are discarded, replaced by the TS packet structure. The output is a self-contained transport stream suitable for broadcast ingest, HLS segmentation, or FFmpeg-based streaming pipelines.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary, the open-source multimedia processing engine that powers this conversion both in the browser via FFmpeg.wasm and on the desktop via the command line.
-i input.3g2 Specifies the input file in 3G2 format — the CDMA-era mobile container built on MPEG-4 Part 12, typically carrying mobile-profile H.264 video and AAC audio encoded for low-bandwidth transmission.
-c:v libx264 Re-encodes the video stream using the libx264 H.264 encoder, producing a High Profile H.264 stream compatible with the MPEG-2 TS container and broadcast/streaming systems — upgrading from the mobile-optimized H.264 profile typically found in 3G2 files.
-c:a aac Re-encodes the audio stream as AAC, which is supported natively in MPEG-2 TS as an ADTS or LATM stream. Since the 3G2 source also uses AAC, this re-encodes the audio to ensure it is properly framed for the TS packet structure.
-crf 23 Sets the Constant Rate Factor for libx264 to 23, the default quality level that balances file size and visual quality. For low-resolution 3G2 sources from mobile devices, this produces output that closely matches the source quality without significant bloat in the TS file.
-b:a 128k Sets the AAC audio bitrate to 128 kilobits per second, which is appropriate for the mono or low-quality stereo audio commonly found in 3G2 mobile recordings and is well within the audio quality ceiling of the original source.
output.ts Specifies the output file with the .ts extension, signaling FFmpeg to mux the re-encoded H.264 and AAC streams into an MPEG-2 Transport Stream container structured with PAT/PMT tables and 188-byte packets suitable for broadcast ingest or HLS segmentation.

Common Use Cases

  • Ingesting old footage recorded on CDMA-era phones (e.g., early Verizon or Sprint devices) into a broadcast or live-streaming encoder that requires TS input
  • Preparing archival 3G2 video files for HLS packaging, since TS is the native segment format used by HLS (.m3u8) workflows
  • Converting mobile-captured 3G2 clips for use in professional broadcast editing systems that accept MPEG-2 TS as an input format
  • Feeding 3G2 video into a digital signage or IPTV system that expects a transport stream container
  • Batch-processing a library of legacy 3G2 recordings into TS so they can be segmented and streamed via a CDN
  • Extracting and repackaging footage from older 3GPP2 devices into a format compatible with VLC, ffplay, or network streaming appliances that prefer TS over MP4-family containers

Frequently Asked Questions

Yes, this conversion involves re-encoding both the video and audio rather than a simple remux, so some generation loss is introduced. However, using the default CRF 23 for libx264 and 128k AAC produces output that is visually indistinguishable from the source for most 3G2 files, which were already encoded at low bitrates for mobile transmission. Since 3G2 source files are inherently low-resolution and lossy to begin with, the practical quality difference is minimal.
In theory, H.264 video from a 3G2 file could be stream-copied into a TS container since both support H.264. However, 3G2 files often contain mobile-profile H.264 with specific NAL unit formatting or parameter sets that may cause compatibility issues inside a TS packet structure. Re-encoding with libx264 ensures the output H.264 stream conforms cleanly to the constraints expected by broadcast and streaming TS decoders, avoiding potential playback failures downstream.
The MPEG-2 TS format itself supports subtitles and multiple audio tracks, which is one of its advantages over 3G2. However, since the 3G2 source does not carry subtitle streams or additional audio tracks, the converted TS file will only contain the single video and single audio stream from the original. If you later want to add subtitles or extra audio tracks to the TS file, you would need a separate FFmpeg command to mux those streams in.
The 3G2 container's mobile-specific metadata — including the 'ftyp' brand identifier, 3GPP2 asset metadata boxes, and the 'moov' atom positioning used by the -movflags +faststart flag — are not carried over into the TS output. MPEG-2 Transport Stream uses a completely different structural model based on Program Association Tables (PAT) and Program Map Tables (PMT), so the output file is structured from scratch. Any embedded location data or device metadata stored in the 3G2 container is lost in the conversion.
The video quality is controlled by the -crf flag, which uses Constant Rate Factor encoding with libx264. Lower CRF values produce higher quality and larger files — for example, changing '-crf 23' to '-crf 18' would significantly improve quality at the cost of a larger TS file. Given that 3G2 sources are typically small and low-resolution, a CRF between 18 and 23 is usually the practical sweet spot. You can also increase audio quality by changing '-b:a 128k' to '-b:a 192k' or higher.
Yes. On Linux or macOS you can batch process with a shell loop: 'for f in *.3g2; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.3g2}.ts"; 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.ts"'. This is especially useful for large archives of legacy mobile recordings that exceed the 1GB browser limit.

Technical Notes

MPEG-2 Transport Stream is structurally incompatible with the MP4/MOV/3G2 file format family — they differ not just in extension but in fundamental container architecture. The 3G2 format uses a hierarchical box-based structure inherited from MPEG-4 Part 12, while TS uses a flat stream of 188-byte packets multiplexed by PID. This means no metadata, chapter, or structural information from the 3G2 file is preserved in the TS output. The libx264 encoder at CRF 23 produces a High Profile H.264 stream by default, which is far more capable than the Baseline or Main Profile H.264 commonly found in 3G2 files encoded for CDMA mobile networks — the output will typically have better compression efficiency even at the same perceived quality. The TS container does not support chapters (neither does 3G2), but it does support DVB and ATSC subtitle streams and multiple audio PIDs, features that could be exploited in downstream processing. One known consideration: some TS consumers in HLS pipelines expect a specific constant frame rate; if the 3G2 source has variable frame rate (common in older mobile recordings), you may want to add '-vsync cfr' to the FFmpeg command to force constant frame rate in the output.

Related Tools