什么是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等常见格式。