什么是 M3U8 文件,其中包含什么?
M3U8 是 M3U 播放清单格式的 UTF-8 版本。HLS 清单以 EXTM3U 开头,并使用 EXT 标签描述变体、时长、序列号、加密、初始化数据及其他播放指令。
该文件通常很小,因为它只指向媒体而不嵌入视频本身。只下载 M3U8 文本并不会下载影片。
主 M3U8 清单与媒体清单如何配合
主清单列出具有不同带宽、分辨率、编解码器、音频组或字幕的备用版本。播放器会根据设备能力和网络状况选择媒体清单。
媒体清单通过 EXTINF 列出定时分片。已完成的点播通常包含 EXT-X-ENDLIST,而直播清单会随着新分片出现而刷新。
常见 HLS M3U8 标签对转换有什么影响
EXT-X-STREAM-INF 引入变体,EXTINF 声明分片时长,EXT-X-MAP 标识分片式 MP4 的初始化数据,EXT-X-KEY 则描述加密。
这些标签会直接影响转换。工具必须解析相对网址、保持分片顺序、包含初始化数据,并在源是直播或使用不支持的保护方式时停止。
如何打开 M3U8 文件(以及双击为什么失败)
M3U8 是小型文本索引而不是完整视频,因此双击通常会报错或得到空清单。观看媒体需要能解析清单的播放器,例如 VLC、支持 HLS 的浏览器播放器或本站的在线 M3U8 播放器。
要把串流变成普通视频文件,可使用 M3U8 转 MP4 工具:它会获取清单指向的分片,并在你的设备上组装成一个可下载的 MP4。
为什么 M3U8 在浏览器中失败,在其他地方却可用
浏览器 JavaScript 遵循同源和 CORS 规则。每个清单、重定向、密钥、初始化映射和分片主机都必须允许发起请求的网页来源。
桌面播放器不受浏览器 CORS 限制,还可能支持更多编解码器、请求头和身份验证方式。这解释了许多 VLC 可用而浏览器失败的情况。