M3U8 扩展标签:完整 HLS 参考
8 min read
基本标签
| 标签 | 语法 | 说明 |
|---|---|---|
| #EXTM3U | #EXTM3U | 文件头;必须为首行 |
| #EXTINF | #EXTINF:<时长>,<标题> | 片段时长 |
| #EXT-X-VERSION | #EXT-X-VERSION:<n> | HLS 协议版本 |
| #EXT-X-TARGETDURATION | #EXT-X-TARGETDURATION:<s> | 最大片段时长(秒) |
| #EXT-X-MEDIA-SEQUENCE | #EXT-X-MEDIA-SEQUENCE:<n> | 首片段序号 |
| #EXT-X-ENDLIST | #EXT-X-ENDLIST | 不再有新片段(点播) |
流与媒体标签
#EXT-X-STREAM-INF:BANDWIDTH=1280000,RESOLUTION=720x480,CODECS="avc1.66.30,mp4a.40.2"——变体流;下一行是媒体播放列表 URL。#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="en",NAME="English",URI="audio.m3u8"——备用音轨/字幕。#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=128000,URI="iframe.m3u8"——用于拖动的 I 帧播放列表。
直播标签
#EXT-X-PLAYLIST-TYPE:EVENT或VOD——播放列表类型(纯直播可省略)。#EXT-X-DISCONTINUITY——片段间断点(广告、编码变化)。#EXT-X-PROGRAM-DATE-TIME:2026-01-01T00:00:00Z——片段的绝对时间。- 低延迟 HLS 的服务器控制标签。
加密标签
#EXT-X-KEY:METHOD=AES-128,URI="https://key.server/key.bin",IV=0x...——加密方法与密钥位置(AES-128、SAMPLE-AES 或 NONE)。#EXT-X-SESSION-KEY——在主播放列表中尽早声明密钥。
会话数据标签
#EXT-X-SESSION-DATA——主播放列表中的元数据。#EXT-X-START:TIME-OFFSET=30——建议起始偏移。#EXT-X-DATERANGE——广告插播等定时事件。
如何使用本参考
调试流时,在文本编辑器中打开播放列表,对照本列表匹配标签。结构概览:格式详解。创建播放列表:创建 M3U8 播放列表。
常见问题解答
每个 M3U8 必须以什么标签开头?
#EXTM3U
哪个标签结束点播播放列表?
#EXT-X-ENDLIST
加密如何声明?
#EXT-X-KEY,含 METHOD 和 URI。
变体列在哪里?
主播放列表中通过 #EXT-X-STREAM-INF。