如何在浏览器里播放 .TS(MPEG-TS)文件——无需转码

如何在浏览器里播放 .TS(MPEG-TS)文件——无需转码
你手上有个 .ts 文件。它可能来自录播(PVR/DVR)、IPTV 抓流、行车记录仪、数字电视录制,或者一个分片下载下来的视频。你双击它没反应;拖进 Chrome,它又只是下载一遍。
.ts 这个后缀让很多人犯迷糊,一部分原因是它出现在两个完全不同的场景里。我们先把这点讲清,再让你的文件播起来——在浏览器标签页里、本地解码、不转码。
.TS 文件到底是什么
.ts 是 MPEG 传输流(MPEG Transport Stream)。它是为广播传输设计的,不是为躺在硬盘上设计的。数字电视、IPTV、卫星都需要一种能被切成固定大小小包、在可能丢包的链路上传输的格式——于是 MPEG-TS 把视频和音频封进一连串 188 字节的包里,专为抗误码传输而生。
这跟 MP4 这种普通的"播放这个文件"的容器,是完全不同的活儿。.ts 里面的视频通常是 H.264 或 HEVC——你浏览器经常能解的编码。但外面那层传输流封装,<video> 标签作为独立文件是打不开的。
最让人犯晕的地方在这:浏览器确实能处理
.ts——但只能作为 HLS 播放列表(.m3u8)里的分片。单独一个.ts文件本身不是播放列表,所以浏览器没有东西能播它。如果你面对的是流媒体链接而不是保存下来的文件,该看的是我们的 HLS / m3u8 串流指南。
所以:编码通常没问题,问题在容器——这和为什么 MKV 和 AVI 也播不了是同一个主题。容器与编码的区别详见视频格式完全指南。
常见做法——以及它们为什么烦
1. 重封装/转码(FFmpeg)
里面是 H.264 的 .ts 常常可以*重封装(remux)*成 .mp4 而不重编码。这比完整转码快,但仍然要跑命令行工具、生成第二个文件、还得知道正确的命令。谈不上拖放。
2. 传到在线播放器/转换站
要等整个文件上传到别人的服务器才能看——还附带常见的隐私和体积限制问题。行车记录仪和私人录像真不该走这一趟。
3. 装 VLC
VLC 能好好播 .ts。但还是那些事:要装、在受管电脑上被禁、手机上别扭、不能当链接发。
更好的办法:在本地解码传输流
OnlinePlayer 打开 .ts 的方式,是读取传输流、在你自己的设备上解码它,就在浏览器里——没有转码步骤、不上传、不装软件。
这里有个专属传输流的技术细节:MPEG-TS 文件会被直接送进本地解码器,而不是走一遍强制重编码(对这类容器来说,强制重编码往往会卡死)。从这里开始:
- 硬件解码(WebCodecs)。 当里面的编码——通常是 H.264 或 HEVC——能在你设备上硬解时,就交给 GPU。播放流畅、省 CPU、对电池友好,HD/4K 录制也没问题。
- 软件解码(WebAssembly 版 FFmpeg)。 硬解不了时,OnlinePlayer 走软件解码,现在用双 worker 并行,吞吐约 1.8×。
一切都在标签页里完成,文件不离开你的电脑。 想了解硬解/软解怎么选,看硬解 vs 软解。
分步操作:现在就播你的 .TS 文件
- 打开 onlineplayer.app(任意现代浏览器)。
- 把
.ts文件拖到页面上——或点击浏览。保存下来的.ts是在你设备上解码的,所以需要是本地文件;如果它在云盘里,先下载到本地,再拖进来。 - 开播——本地播放,什么都不上传。
如果你手上是 IPTV / 串流链接(一个引用 .ts 分片的 .m3u8),用链接播放流程粘贴链接——那是串流路径,和保存下来的 .ts 文件是两回事。
浏览器播 .TS vs. 其他方案
| 重封装/转码(FFmpeg) | 在线转换站(上传) | 装 VLC | OnlinePlayer | |
|---|---|---|---|---|
| 看到第一帧的时间 | 命令行 + 新文件 | 要先传完整个文件 | 装好再打开 | 即时 |
| 隐私 | 本地 ✅ | 文件在对方服务器 ❌ | 本地 ✅ | 本地——什么都不上传 ✅ |
| 省事程度 | 要知道正确命令 | 简单但慢 | 装完才简单 | 拖放即可 |
| 要装软件吗 | 要(FFmpeg) | 不要 | 要 | 不要 |
| 受限电脑/手机能用 | 不能 | 有时 | 有限 | 能(就是个网页) |
诚实的边界
- 单独的
.ts是保存下来的文件,不是直播流。 把文件拖进来本地解码;直播 IPTV/HLS 链接走 URL/串流路径。 - 冷门或残缺的抓取可能不顺——广播抓取有时有丢包或时间戳异常。多数干净的录制都能正常播;损坏的抓取可能卡顿或跳帧。
- 环绕声会被下混成立体声,和任何浏览器播放器一样。
FAQ
.ts 文件和 HLS 有什么区别?
HLS(.m3u8)是个播放列表,把许多小的 .ts 分片串起来用于串流,浏览器懂这个。单独一个 .ts 文件只是一个没有播放列表的传输流片段,浏览器没法直接播——而这正是本地解码解决的问题。
我的 .ts 来自行车记录仪 / DVR,能播吗?
通常能。它们一般是传输流里的 H.264,解得很干净。本地解码,footage 一字节都不离开你的设备。
我得先把它转成 MP4 吗? 不用。直接打开,没有重封装步骤,硬盘上也不多一份文件。
我能不下载、直接播放云盘里的 .ts 吗?
不能直接流播——云盘播放只支持浏览器原生格式。先把 .ts 下载到本地,再打开它。
结论
.ts 在浏览器里播不了,是因为它是为广播而生的传输流,不是普通的播放容器——尽管里面的视频通常是你浏览器能解的编码。跳过 FFmpeg 的咒语和上传:用一个本地解码传输流的播放器打开它,大约一秒就播起来。