Convert TS to 3GP — Free Online Tool
Convert MPEG-2 Transport Stream (TS) files to 3GP format optimized for 3G mobile devices, re-encoding video with H.264 and audio with AAC at low bitrates. This tool handles the significant downgrade in target profile — from broadcast-grade TS streams to bandwidth-constrained 3GP — entirely in your browser with no upload required.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your TS 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-2 Transport Stream files typically carry H.264 or H.265 video alongside AAC or AC-3 audio, packaged in a container designed for broadcast transmission with error correction and multiple program streams. Converting to 3GP requires a full re-encode: the video is transcoded to H.264 using libx264 with CRF 23 (a balanced quality-to-size setting), the audio is transcoded to AAC at 64k bitrate (a low-bandwidth setting appropriate for mobile playback), and the container is repackaged into the 3GP format defined by 3GPP standards. A critical step is the scale filter — `scale=trunc(iw/2)*2:trunc(ih/2)*2` — which ensures the output dimensions are divisible by 2, a hard requirement for H.264 encoding that prevents errors when the source TS has odd-pixel-dimension video. Subtitle tracks and secondary audio tracks present in the TS are dropped, as 3GP supports neither.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary — the open-source multimedia processing engine that handles all demuxing, decoding, filtering, encoding, and remuxing operations in this TS-to-3GP conversion. |
-i input.ts
|
Specifies the input MPEG-2 Transport Stream file. FFmpeg will demux the TS container, identifying and decoding the video elementary streams and audio elementary streams (which may be H.264, H.265, AAC, AC-3, or others depending on the broadcast source). |
-c:v libx264
|
Sets the video encoder to libx264, re-encoding whatever video codec was in the source TS (H.264, H.265, MPEG-2 Video, etc.) into H.264 — the video codec required by the 3GP format and supported by the widest range of 3G mobile devices. |
-c:a aac
|
Sets the audio encoder to AAC, transcoding the source audio (which in a broadcast TS is commonly AC-3 surround or MPEG audio) into AAC, the audio codec supported by 3GP and appropriate for mobile playback. |
-crf 23
|
Sets the Constant Rate Factor for the H.264 encode to 23, which is the libx264 default and provides a balanced quality-to-file-size ratio suitable for mobile playback — lower values would increase quality and file size beyond what most 3GP use cases require. |
-b:a 64k
|
Sets the AAC audio output bitrate to 64 kilobits per second, a deliberately low value that matches the bandwidth and hardware decoder constraints of 3G mobile devices and keeps 3GP file sizes small for storage and transmission. |
-vf scale=trunc(iw/2)*2:trunc(ih/2)*2
|
Applies a video filter that rounds the output width and height down to the nearest even number. This is required because H.264 encoding with libx264 cannot produce video with odd pixel dimensions, and broadcast TS sources occasionally have non-standard frame sizes that would otherwise cause the conversion to fail. |
output.3gp
|
Specifies the output filename with the .3gp extension, which instructs FFmpeg to package the encoded H.264 video and AAC audio streams into a 3GP container as defined by the 3GPP multimedia format specification. |
Common Use Cases
- Archiving old broadcast TV recordings captured as TS files for playback on legacy 3G-era mobile handsets that only support 3GP
- Reducing the file size of a TS recording from a digital TV tuner card to share via MMS or early mobile messaging platforms with strict size limits
- Preparing video clips from a transport stream for playback in embedded systems or IoT devices with limited codec support that accept 3GP
- Converting short broadcast segments captured as TS files into 3GP for use in mobile video production workflows targeting low-bandwidth distribution
- Extracting a re-encoded mobile-compatible version of a TS recording to test how broadcast content will render on constrained mobile hardware
Frequently Asked Questions
Yes, dramatically so. Transport Stream files from broadcast sources often carry video at several Mbps with lossless-quality audio codecs like AC-3 at 192–384k, plus overhead from the TS container structure. The 3GP output uses H.264 at CRF 23 and AAC at just 64k audio, which together can reduce file size by 80–95% depending on the source bitrate. The tradeoff is a noticeable reduction in video sharpness and audio fidelity, which is intentional given 3GP's mobile-optimized design.
No. MPEG-2 Transport Streams can carry multiple audio tracks, subtitle streams (DVB subtitles, Teletext, etc.), and even multiple video programs, but the 3GP format supports none of these features. Only the first (or default) video stream and a single audio stream are carried into the output. If your TS file has multiple audio languages, only the default audio track will be included in the 3GP file.
The `-vf scale=trunc(iw/2)*2:trunc(ih/2)*2` filter ensures the output video width and height are both divisible by 2, which is a strict requirement for H.264 encoding with libx264. MPEG-2 Transport Streams from broadcast sources occasionally have non-standard or odd-pixel dimensions due to anamorphic scaling or cropping, and without this filter, FFmpeg will throw an error and fail to produce output. It is strongly recommended to keep this filter; it will have no visible effect on content that already has even dimensions.
The quality will be noticeably lower, which is expected and inherent to the 3GP format's purpose. The default CRF 23 for H.264 is a reasonable mid-range setting that balances file size and visual quality, but it is encoding content that was originally compressed for broadcast, so there will be generational quality loss. The 64k AAC audio is optimized for voice and basic stereo content on mobile speakers — it is sufficient for dialogue but will lose high-frequency detail present in broadcast-quality audio tracks like AC-3 5.1 surround.
To adjust video quality, change the `-crf` value: lower numbers (e.g., 18) produce higher quality at larger file sizes, while higher numbers (e.g., 35) produce smaller files with more compression artifacts. For audio, replace the `-b:a 64k` value with a higher bitrate like `96k` or `128k` if audio fidelity matters more than file size. Note that audio bitrates above 128k are not typical for 3GP and may not be supported by all target devices. Keep changes within the 3GP format's constraints if you need playback compatibility on older mobile hardware.
Yes. On Linux or macOS you can loop over files in a directory using: `for f in *.ts; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 64k -vf scale=trunc(iw/2)*2:trunc(ih/2)*2 "${f%.ts}.3gp"; done`. On Windows Command Prompt, use: `for %f in (*.ts) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 64k -vf scale=trunc(iw/2)*2:trunc(ih/2)*2 "%~nf.3gp"`. This is especially useful for processing collections of recorded broadcast segments that exceed the browser tool's 1GB limit.
Technical Notes
The 3GP format was specified by the Third Generation Partnership Project to work within the severe constraints of early 3G mobile networks, and it reflects those origins in its codec and feature limitations. Unlike the TS container — which is engineered for reliability over unreliable broadcast channels and can carry dozens of elementary streams — 3GP is a stripped-down profile of the MPEG-4 container supporting only a narrow set of codecs. On the video side, H.264 Baseline Profile is the most broadly compatible choice for 3GP; libx264 with CRF 23 targets this well, though for maximum compatibility with very old devices, you may want to explicitly add `-profile:v baseline -level 3.0` to the command. The audio default of 64k AAC is deliberately conservative — older 3GP-capable phones often had hardware decoders with bitrate ceilings around 64–96k. Metadata from the TS file (program name, service information, broadcast timestamps, EPG data) is entirely discarded in the conversion, as 3GP has no equivalent metadata structures for broadcast provenance. There is no lossless path from TS to 3GP; every 3GP output involves lossy compression by definition.