什么是 M3U8 协议?HLS 流媒体详解

目录

  1. M3U8 是什么
  2. HLS 协议简介
  3. 播放列表结构
  4. 自适应码率
  5. 总结

M3U8 是什么

M3U8 是一种 UTF-8 编码的 多媒体播放列表文件,本质上是一个纯文本文件,用来描述一组媒体文件(通常是视频分片)的地址。它是 HLS(HTTP Live Streaming)协议的核心文件格式。

与传统的 MP4 单个文件不同,M3U8 把一个完整的视频切分成许多小的 TS 分片,播放列表中记录了这些分片的顺序和地址,播放器按顺序下载并播放,从而实现流媒体传输。

HLS 协议简介

HLS 是由苹果公司提出的流媒体传输协议,其最大特点是 基于 HTTP 协议。这意味着它可以穿透绝大多数防火墙和 CDN,部署成本低、兼容性好。

HLS 的工作流程可以概括为三步:

  1. 服务器将视频切片为多个小的 TS 文件,并生成一个 m3u8 播放列表。
  2. 客户端下载 m3u8 播放列表,解析出所有分片地址。
  3. 客户端按顺序下载 TS 分片并连续播放,实现"边下边播"。

播放列表结构

一个典型的 m3u8 播放列表如下所示:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXTINF:10.0,
segment-000.ts
#EXTINF:10.0,
segment-001.ts
#EXT-X-ENDLIST

其中:

自适应码率

HLS 的一大优势是支持 自适应码率(ABR)。服务器可以提供多个不同清晰度的 m3u8 列表(称为主播放列表),播放器根据当前网络带宽自动选择最合适的清晰度,从而在网络波动时保证播放流畅。

这也是为什么你在观看在线视频时,画面清晰度会随网络状况自动变化的原因。

总结

M3U8 是 HLS 流媒体的核心文件格式,通过把视频切分为小分片并以播放列表组织,实现了基于 HTTP 的高效流媒体传输。配合自适应码率,HLS 成为了互联网直播与点播领域最主流的协议之一。

想要实际体验 m3u8 播放?前往 在线播放器 试试吧。