TS to MP4 Converter

Drop your .ts files, get one MP4 with the same picture and sound. No upload, no re-encoding: the conversion runs in your browser.

Convert TS files to MP4

Free. Nothing is uploaded: your browser reads the files and writes the MP4 on your device.

or drop them here

.ts, .m2ts, .mts. Several files are joined into one MP4, in order.

ffmpeg command

Same result from a terminal
ffmpeg -i "input.ts" -c copy "input.mp4"

Run it in the folder that holds the files, with ffmpeg installed. -c copy copies the streams without re-encoding.

To convert TS to MP4 without losing quality, drop the .ts file above and press Convert to MP4. The page copies the H.264 video and AAC sound from the transport stream into an MP4 file without re-encoding them, so the picture and sound keep their original quality. Several files are joined in order. Nothing leaves your device.

How to convert TS to MP4

  1. Add the files. Press Choose .ts files or drop them on the box. .ts, .m2ts and .mts are accepted. You can also paste a https:// link to a .ts file.
  2. Check what the page found. Each file shows its size, its estimated duration and its codecs, read from the first and last 2 MB of the file. If a codec cannot be converted in the browser, the page says so before anything is converted and gives the ffmpeg command instead.
  3. Set the order. Several files are sorted by name in natural order, so part2.ts comes before part10.ts. The arrows move a file up or down.
  4. Press Convert to MP4. In Chrome and Edge on a computer, you choose where to save and the MP4 is written to disk while it is made. In other browsers it is assembled in memory, then downloaded.

The files are read in 4 MB pieces, so even a recording of several gigabytes is never loaded whole. Cancel stops at once and discards what was written.

Why the conversion is lossless

TS (MPEG transport stream) and MP4 are containers: they say how the video and sound are packed, not how they are compressed. The pictures inside a typical .ts file are H.264 and the sound is AAC, and both fit in an MP4 as they are. Converting TS to MP4 is therefore a remux: the page unpacks the compressed frames from the 188-byte TS packets and repacks them into MP4 boxes, with their timestamps. Nothing is decoded or compressed again.

Three consequences follow. The quality is exactly the original, frame for frame. The conversion is fast, because copying bytes is far cheaper than encoding video. And the MP4 is about the size of the TS, usually a little smaller, since MP4 has less packaging overhead than a stream of small packets.

Online converters that upload your file often re-encode it, which is slower and costs quality, and they cap the size. A remux needs neither.

The output is a fragmented MP4, the layout streaming sites use, which can be written while it is made. Current players and browsers read it. If an old editor refuses it, one command rewrites it as a classic MP4 in seconds, still without re-encoding:

ffmpeg -i "video.mp4" -c copy -movflags +faststart "video-classic.mp4"

TS vs MP4: what is the difference?

TS (.ts, .m2ts, .mts)MP4 (.mp4)
Made forBroadcasting, recording, HLS streamingPlaying, editing, sharing, uploading
StructureA continuous stream of 188-byte packets (192 in .m2ts)An index of the samples plus the media data
If the file is cutStill plays up to the cut, from any pointA plain MP4 may not open; a fragmented MP4 plays up to the cut
OverheadHigher: a header in every packetLower
SupportVLC, ffmpeg, most TVs; poorly in browsers, phones and upload formsEverywhere
QualityThe same: both carry the same codecs (H.264, HEVC, AAC...)

Is TS better than MP4? For recording, yes: a capture that crashes or a download that stops halfway still leaves a playable .ts. For everything after the recording, MP4 is the better choice, which is why so many tools save to TS first and convert later.

Joining several .ts files into one MP4

Add every file at once. The page treats the list as one video, in the order shown, and writes one MP4. It follows the timestamp of every video frame, across files and inside each file:

All the files must share the same layout: H.264 video, AAC sound or no sound in all of them, and the same picture size and sound settings. One MP4 cannot switch its picture size halfway; if a file differs, the conversion stops and the ffmpeg command takes over. With ffmpeg, joining files uses a list:

# list.txt
file 'part1.ts'
file 'part2.ts'
file 'part3.ts'

ffmpeg -f concat -safe 0 -i list.txt -c copy "part1.mp4"

When the sound is AC-3, MP2 or MP3, or the video is HEVC

The browser remux relies on mux.js, which handles H.264 video and AAC sound, the pair found in most .ts files from the web and HLS streams. TV recordings and cameras often use something else: AC-3 (Dolby Digital) or MP2 sound from DVB and ATSC broadcasts, AC-3 from AVCHD camcorders, HEVC (H.265) video from recent devices.

The page reads the stream table of every file before converting. When it finds one of these codecs, it stops before writing anything, says which codec is the problem and prints the ffmpeg command for your files. Most of them still need no re-encoding, because MP4 can hold them:

ffmpeg -i "recording.ts" -c copy "recording.mp4"

For HEVC the command adds -tag:v hvc1, which Apple players need to recognize the video. For codecs MP4 cannot hold as they are (LPCM or TrueHD from Blu-ray, AAC in LATM framing), it copies the video and converts only the sound to AAC with -c:v copy -c:a aac -b:a 192k. When a file has several sound tracks and one is AAC, the page converts it with the first AAC track and says which tracks are left out. Subtitles and teletext are not carried over.

Converting a .ts that came from an M3U8 stream

HLS streams deliver video as many short .ts segments listed in an .m3u8 playlist. If you saved the segments yourself, add them all here: they are sorted in natural order and joined on one timeline. If you only have the link to the playlist, there is no need to download the segments first: the M3U8 to MP4 converter reads the playlist, downloads the segments and decrypts AES-128 in one go. If the link does not work, the M3U8 tester tells you why (expired link, server that refuses other sites, DRM) before you try anything else.

A .ts recorded from a live stream with ffmpeg converts the same way. If the recording was cut, the .ts still plays up to the cut, and so does the MP4 made from it.

Other ways: ffmpeg and VLC

ffmpeg

The command shown under the converter is built for your files and in your order, and its -map options keep the same tracks as the page: the video and the first AAC sound track. -c copy is the important part: without it, ffmpeg re-encodes the video. ffmpeg is the right tool for codecs the browser cannot remux and for batches of many files.

VLC

In VLC, open Media > Convert / Save, add the .ts file, press Convert / Save and choose a profile with MP4 as the encapsulation. Edit the profile and tick Keep original video track in the Video codec tab and Keep original audio track in the Audio codec tab, then pick a destination file ending in .mp4. Without those two options, VLC re-encodes the video, which takes much longer and loses quality.

Limits

Skip the .ts step next time

Vidora is a Chrome extension that saves the video playing on a page, HLS streams included, straight as one MP4 with picture and sound. No segments to collect, nothing to convert afterwards.

Frequently asked questions

How do I convert TS to MP4 without losing quality?
Remux it instead of re-encoding it. A .ts file and an .mp4 file can hold the same H.264 video and AAC sound; only the container differs. This page copies the frames from the TS packets into MP4 boxes without decoding them, so the video and sound frames are copied bit for bit. With ffmpeg, the same thing is ffmpeg -i "input.ts" -c copy "output.mp4".
Can VLC convert TS to MP4?
Yes, with Media > Convert / Save, a profile with MP4 as the encapsulation, and the options Keep original video track and Keep original audio track ticked in the profile's Video codec and Audio codec tabs. Without those two options, VLC re-encodes the video, which is slower and loses quality.
Is TS better than MP4?
Neither has better quality: both carry the same codecs. TS is made for broadcasting and recording, because a cut or damaged file still plays from any point. MP4 is made for playing, editing and sharing: phones, editors and upload forms expect it, and it has a little less overhead. Record in TS, keep and share in MP4.
Are my files uploaded to a server?
No. The page reads the files on your device with the browser's File API and writes the MP4 on your device. Vidora receives nothing about the files. The only network request the converter makes is to a .ts URL you paste yourself.
Is there a file size limit?
In Chrome and Edge on a computer, you pick where to save and the MP4 is written to disk as it is made, so the limit is your free disk space. Other browsers keep the file in memory until the end: the page warns above 500 MB and refuses above 1 GB (300 MB on phones).
How do I merge several .ts files into one MP4?
Add all the files at once. They are sorted by name in natural order (part2 before part10); move them up or down if needed, then press Convert to MP4. Segments of one stream are joined on one timeline, and files whose timestamps start again are placed one after the other. The page also prints the ffmpeg concat command for the same order.
Why can it not convert my file with AC-3 sound or HEVC video?
The browser remux uses mux.js, which handles H.264 video with AAC sound. HEVC, AC-3, E-AC-3, MP2 and MP3 are detected before anything is converted, and the page prints the ffmpeg command that copies them into MP4, or converts only the sound to AAC when MP4 cannot hold it as it is.
Can it convert .m2ts and .mts files from a camera?
It reads their 192-byte packets and converts them when they hold H.264 video with AAC sound. Most AVCHD camcorders record Dolby Digital (AC-3) sound, though: the page then says so and prints the ffmpeg command, which copies the video as it is.

Romain Gouraud, RGC Digital LLC

Updated 2026-10-09. Tested on .ts files made with ffmpeg: single files, three separate recordings joined end to end, three segments of one stream cut between keyframes, a 60-second 62 MB file, a 192-byte .m2ts, a file without sound, a file with AAC and AC-3 tracks, a DVB-style program table, two files glued with cat (60 s and 124 MB), a segment saved twice, and a clock that wraps around. Every MP4 had H.264 video and AAC sound in ffprobe, the expected number of frames, and decoded in ffmpeg without errors. HEVC, AC-3, MP2 and MP3 files were refused with a command that ffmpeg ran successfully; a scrambled file and files of different picture size or sample rate were refused before converting. The MPEG-TS remux uses mux.js (Apache-2.0).