m3u8 本质是UTF-8 编码的纯文本播放索引文件,它本身并不是视频,里面没有视频画面数据,只是记录 HLS 流媒体里面所有视频分片 ts 文件的地址、时长、序号、加密信息,HLS 是苹果推出的流媒体协议,广泛用在在线直播、点播网页播放,浏览器、手机、播放器都原生支持 m3u8,它把完整长视频切割成很多小 ts 分片,播放器按照 m3u8 里面的清单,依次下载这些分片拼接播放,这种分片方式的优点是可以实现自适应码率,根据网速自动切换清晰度,直播的时候延迟可控,也支持 AES 加密保护视频源,很多网站在线视频底层都是 m3u8 源。
核心特点
属于文本索引,体积很小,一般几 KB 到几十 KB
底层视频分片一般是 ts 格式
支持多码率(主 m3u8 里面嵌套子 m3u8,对应高清标清不同码流)
支持 AES-128 加密,需要密钥文件才能解密播放
跨平台兼容好,网页、安卓、iOS、电视盒子都支持
文件内部内容示例
EXTM3U
EXT-X-VERSION:3
EXT-X-TARGETDURATION:10
EXTINF:10.0,
segment0.ts
EXTINF:10.0,
segment1.ts
EXT-X-ENDLIST
- #EXTM3U 是文件头标识,必须存在
- #EXTINF 标记每一个分片的播放时长
- #EXT-X-ENDLIST 代表点播视频结束,直播流一般没有这一行
和普通 mp4 的区别对照表
| 项目 | m3u8 | mp4 |
|---|---|---|
| 本质 | 索引清单,不含画面 | 完整封装视频文件 |
| 播放方式 | 分片加载,边下边播 | 可以整文件下载 |
| 自适应码率 | 原生支持 | 需要额外封装支持 |
| 加密 | 原生 AES 加密 | 没有原生内置加密机制 |
| 适用场景 | 直播、网页点播 | 本地视频、离线保存 |
识别判断步骤
第一步 看到后缀 m3u8,优先判断是 HLS 索引,不是完整视频
第二步 打开文件,能看到 ts 分片地址、标签,确认是文本
第三步 如果里面有 EXT-X-KEY,说明视频做了 AES 加密
第四步 如果是主索引,里面写的是子 m3u8 地址,代表多码率版本
补充要点
很多人拿到 m3u8 之后,想保存成本地 mp4,就需要把所有 ts 分片下载合并,再转封装成 mp4,常用 ffmpeg 就可以完成这个操作。注意:如果视频有版权保护,未经许可下载、转存、传播属于侵权行为。
【常见问题】
问题 1 m3u8 是啥格式 m3u8 可以直接双击播放吗
回答 1 m3u8 是啥格式,普通系统自带播放器一般不能直接打开,需要 VLC、PotPlayer 这类支持 HLS 的播放器,并且要能访问对应的 ts 分片地址。
问题 2 m3u8 是啥格式 m3u8 里面的 ts 是什么
回答 1 m3u8 是啥格式,ts 是传输流分片,是真正承载音视频数据的文件,m3u8 只是记录这些分片的播放清单。
问题 3 m3u8 是啥格式 m3u8 为什么打不开
回答 1 m3u8 是啥格式,常见原因是 ts 分片地址失效、AES 密钥丢失、跨域限制,并不是 m3u8 文件本身损坏。
问题 4 m3u8 是啥格式 m3u8 是直播还是点播
回答 1 m3u8 是啥格式,点播文件末尾带有 EXT-X-ENDLIST,直播流一般没有这个结束标签,会持续追加新分片。
【免责申明】
本内容为流媒体技术科普参考,仅用于技术学习,下载转存受版权保护的 m3u8 源需遵守相关法律法规。

