Education·7 min

By Shamir

What Is a .TS File, and Why Your Streams Are Made of Them

If you have ever looked inside a stream manifest, you have seen a list of files ending in .ts. If you have ever pulled video off a recorder or a capture card, you may have ended up with one. And if you have ever tried to open one by double-clicking it, there is a decent chance nothing happened.

.ts stands for MPEG Transport Stream, and it is one of the most quietly important formats in video. It was designed for satellite and terrestrial broadcast in the 1990s, and it ended up carrying an enormous share of internet streaming three decades later — for a reason that is genuinely elegant once you see it.

What a Transport Stream Actually Is

Most video formats you know are files: a container with a header at the front, an index of where everything is, and a defined end. MP4 works like this. It is designed to sit on a disk and be seeked through.

A transport stream is not shaped like that. It is a continuous flow of small, fixed-size packets — 188 bytes each — that can be picked up at any moment.

That design decision came from broadcast. When you tune a television to a channel, you do not start at the beginning of anything. You join a signal already in progress, and the picture has to appear within a second or two. A format with a header at the front and an index would be useless: there is no front.

So a transport stream repeats everything you need, continuously. Every so often it re-sends the tables describing what streams are inside it, and it regularly includes a complete keyframe you can start decoding from. Join at any point and you can start playing within a second.

That is the whole idea, and it explains everything else.

Why Internet Streaming Adopted It

HLS — the streaming method behind most live video you watch — works by chopping content into short segments, typically two to ten seconds, and listing them in a manifest. Your player fetches segments in sequence, and if your connection weakens, it quietly starts requesting lower-quality versions instead of stalling.

For that to work, each segment has to be independently decodable. You cannot have segment 47 depend on a header that only exists in segment 1, because the player might join at 47, or switch quality between 46 and 47.

Transport stream was already exactly that format. Self-describing, startable anywhere, resilient to loss. HLS did not need to invent a segment format; it inherited a broadcast one that had been solving the same problem since before the web had video.

So when you look inside an .m3u8 manifest and see:

#EXTINF:6.000,
segment000.ts
#EXTINF:6.000,
segment001.ts

those are six-second transport-stream chunks. Your stream is not one video. It is thousands of small ones, requested in order. (Why that means you can't simply "convert" a stream to MP4.)

.TS vs .MP4

.ts (MPEG-TS).mp4
ShapeContinuous packet flowIndexed file with a header
Start anywhere?YesNo — needs the header
Survives loss?Yes, resyncs on the next packetDamage can break the whole file
SeekingSlow, no indexFast, indexed
OverheadHigher (headers repeat constantly)Lower
Built forBroadcast and live streamingStorage and playback of complete files

Neither is better. They solve opposite problems. .ts is optimised for arriving; .mp4 is optimised for sitting still.

This is also why converting between them is routine and lossless in principle — the video and audio inside can be identical, and only the wrapper changes.

Where You Meet .TS Files in the Wild

  • Inside HLS streams. Segments, as above. You never see them individually; your player fetches and discards them.
  • From an Xtream-style source with output=ts. That parameter asks the server for raw transport stream rather than segmented HLS. (How those URLs are built.)
  • From broadcast capture hardware. Tuners, capture cards and recorders often write .ts directly, because it is what arrived over the air.
  • On Blu-ray discs, as .m2ts — a close relative.
  • From camcorders, particularly AVCHD models, which also use .m2ts.

When a .TS File Won't Play

Common, and usually one of five things.

1. No file association. Windows and macOS do not ship a handler for .ts. Double-clicking does nothing, or opens something unhelpful. This is not corruption; nothing is wrong with the file. Open it from within a player instead.

Worse: on some systems .ts is registered to a code editor, because it is also the extension for TypeScript source files. A video opening in a text editor is confusing but harmless.

2. The codec inside, not the container. .ts is a wrapper. What is inside might be MPEG-2 (older broadcast), H.264, or HEVC. If your device cannot decode the codec, the container is irrelevant. The classic symptom is audio playing with a black picture. (Black screen but audio works.)

MPEG-2 is a common culprit here: it is ancient, and some modern devices no longer include a decoder for it because nobody expected to still need one.

3. Unusual audio. Broadcast transport streams frequently carry AC-3, E-AC-3 or DTS audio. Video plays, no sound. That is an audio codec or passthrough issue, not a container one. (No sound fixes.)

4. A truncated capture. A recording interrupted mid-write produces a partial file. Transport stream degrades gracefully — it will usually play up to the break — which is one of its genuine advantages over MP4, where a truncated file may not open at all.

5. Seeking is slow, and that reads as broken. There is no index, so a player scrubbing through a large .ts has to scan. Sluggish seeking on a big transport stream file is normal behaviour, not a fault.

Which Software Opens One

For a .ts file on your desktop, general-purpose players handle them well. VLC and mpv are the standard answers and both open transport streams directly, including awkward ones. That is genuinely what they are best at.

For streams delivered as transport stream over a network — an Xtream source with output=ts, an HLS playlist of .ts segments, a device on your LAN — that is a player's core job, and Tuneline handles it across macOS, Windows, Linux, iPhone, iPad, Android, Android TV, Google TV and Apple TV.

To be precise about the boundary, because it matters: Tuneline opens playlists and streams, not local video files. If you have a .ts recording sitting on your hard drive, use VLC or mpv. If you have a transport stream arriving over a network, that is what Tuneline is built for.

The output=ts vs output=m3u8 Question

If your source lets you choose — and Xtream-style sources do — this is worth understanding, because switching it fixes a lot of playback problems.

output=ts gives you the raw continuous stream. Broadest compatibility, works essentially everywhere, but no adaptive bitrate. On a weak connection, it stalls rather than degrading.

output=m3u8 gives you segmented HLS. Better behaved on unreliable connections because the player can drop to a lower quality mid-stream, and generally friendlier on mobile networks.

Practical advice: try m3u8 first on phones and marginal Wi-Fi; try ts when something refuses to play at all. Swapping the parameter is a one-character edit and it resolves a surprising share of "it won't play" reports. (Why streams stutter, and what actually fixes it.)

The Bottom Line

  • .ts is MPEG Transport Stream, built for broadcast: a continuous packet flow you can join at any moment.
  • HLS adopted it because streaming needs independently decodable segments, which is exactly what it already was.
  • Your live stream is thousands of short .ts segments, not one file.
  • .ts starts anywhere and survives damage; .mp4 seeks fast and stores efficiently. Different jobs.
  • Playback failures are usually the codec inside (MPEG-2, HEVC, AC-3), not the container.
  • Slow seeking on a large .ts is normal — there is no index.

Got a transport stream coming over the network? Download Tuneline — free, no bundled content, on every platform you own.

Share this article

The fast fix

Get Tuneline free

A clean, no-account media player for macOS, Windows, Linux, Android, TV, and iOS. Bring your own playlist.

Download free

The cross-platform media player behind these answers — new platforms, sync updates, the honest build story. No spam, unsubscribe anytime.

Read this article in another language

Tuneline is a media player application. It does not provide, host, or distribute any content. You bring your own playlist, exactly as you would with VLC.

#what is a ts file#ts file format#ts file player#mpeg-ts explained#ts vs mp4
Back to all posts