什么是M3U8格式?

全面了解M3U8文件格式和HLS流媒体协议

简介

M3U8是一种基于HTTP的流媒体传输协议(HLS - HTTP Live Streaming)使用的播放列表文件格式。 它由苹果公司开发,最初用于iOS设备,现在已成为互联网视频直播和点播的主流格式。

M3U8文件本身是一个纯文本文件,包含了视频文件的元信息和分片信息, 真正的视频内容存储在TS(Transport Stream)文件中。

工作原理

1. 服务器切片

服务器将完整的视频文件切割成多个小的TS片段(通常每个5-10秒), 并生成一个M3U8索引文件。

2. M3U8索引

M3U8文件记录了所有TS片段的URL、播放顺序、时长等信息, 作为播放器的“目录”。

3. 渐进式下载

播放器根据M3U8文件,按顺序下载并播放TS片段, 实现边下边播的效果。

4. 自适应码率

可以提供多个不同质量的流,播放器根据网络状况 自动切换到合适的码率。

M3U8文件结构

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:9.009,
http://media.example.com/first.ts
#EXTINF:9.009,
http://media.example.com/second.ts
#EXTINF:3.003,
http://media.example.com/third.ts
#EXT-X-ENDLIST

#EXTM3U - 文件头,表示这是一个M3U文件

#EXT-X-VERSION - HLS协议版本

#EXT-X-TARGETDURATION - 每个片段的最大时长

#EXTINF - 片段时长和URL

#EXT-X-ENDLIST - 表示文件结束(点播)

M3U8 vs MP4

M3U8优点

  • 支持直播,实时性好
  • 自适应码率,根据网络自动调整质量
  • 快速跳转,无需加载整个文件
  • CDN友好,容易分发和缓存
  • 支持加密,保护内容安全

M3U8缺点

  • ×不适合本地播放,需要HTTP服务器
  • ×文件数量多,管理复杂
  • ×延迟较高(通常5-30秒)
  • ×部分老旧设备不支持
  • ×下载保存不方便

常见应用场景

视频直播

体育赛事、新闻直播、游戏直播等实时流媒体传输

点播平台

视频网站、在线教育、OTT平台等点播服务

移动应用

手机APP、平板应用中的视频播放功能

如何使用M3U8

在线播放

使用支持HLS的播放器(如本站提供的M3U8 Player)直接播放。

下载保存

使用M3U8下载工具下载所有TS片段并合并成完整视频。

格式转换

使用FFmpeg或在线转换工具将M3U8转换为MP4等常见格式。

相关工具