HLS 与 M3U8 一目了然
| Aspect | HLS | M3U8 |
|---|---|---|
| 它是什么 | HTTP Live Streaming,一种流媒体协议。 | HLS 和其他播放列表工作流程使用的 UTF-8 播放列表文本文件。 |
| Role | 定义播放器如何通过 HTTP 获取播放列表、片段、键和变体。 | 存储播放器在播放期间读取的说明和URLs。 |
| 包含媒体 | 无单个文件;它是一个流媒体系统。 | 通常不会;它指向 .ts、.m4s 或其他媒体段 URLs。 |
| 自适应比特率 | 通过变体播放列表和播放器切换来支持。 | 用#EXT-X-STREAM-INF 等标签表示。 |
| Encryption | 支持正常的AES-128HLS和DRM工作流程。 | 使用#EXT-X-KEY 等标签引用键。 |
| 调试焦点 | 端到端播放行为:CORS、段、键、编解码器和延迟。 | 播放列表有效性:标签、URLs、变体结构和实时/VOD标记。 |
HLS 是工作流程,M3U8 是地图
HLS会话涉及播放器、一个或多个播放列表、媒体片段、可选字幕、可选加密密钥和网络规则,例如CORS。 M3U8 文件是玩家读取的地图,以了解要获取哪些 URL 以及如何解释它们。
为什么人们可以互换地说HLS链接和M3U8链接
大多数HLS流都是作为.m3u8URL输入的,因此用户通常将播放列表URL称为HLS链接。从技术上讲,HLS流包括播放列表及其背后的所有子播放列表、关键文件、媒体片段和播放规则。
HLS 流中什么可能会失败
顶级M3U8文件可能会加载,而子播放列表、关键URL或分段URL则失败。由于CORS、混合内容或热链接保护,浏览器还可能阻止其他有效的流。这就是为什么真正的HLS测试需要回放以及片段和键检查。
浏览器HLS播放器如何使用M3U8
在没有本机 HLS 的浏览器中,Video.js VHS 等 JavaScript 播放器会解析 M3U8 文件,获取媒体片段,并将其输入媒体源扩展。在具有本机HLS支持的平台上,浏览器可以自行处理更多的工作流程。
相关 HLS 和 M3U8 页面
- 什么是 M3U8 文件 定义播放列表格式并解释常见的HLS标签。
- HLS流测试仪 检查完整的HLS工作流程,包括变体、键和采样片段。
- HLSCORS错误 解释了为什么有效的HLS/M3U8流在浏览器播放中仍然会失败。
常见问题
HLS 与M3U8 相同吗?
HLS 是流媒体协议。 M3U8 是HLS 通常用于列出变体、媒体片段、字幕、加密密钥和实时/VOD 元数据的播放列表文件格式。
为什么HLS流使用M3U8文件?
HLS 使用M3U8 文件,因为它们是简单的文本播放列表,可以通过 HTTP 描述媒体片段、变体流、加密密钥、字幕和实时播放列表更新。
M3U8 文件是否可以在没有 HLS 的情况下存在?
是的。 M3U8 表示 UTF-8 播放列表,因此它可以列出媒体 URLs,而不是完整的 HLS 流。 HLS 通常使用M3U8,但术语并不相同。
我应该首先测试什么,HLS还是M3U8?
从 M3U8 播放列表开始:确认它加载并具有有效标签。然后通过检查子播放列表、关键URL、媒体片段、CORS、编解码器和实时/VOD行为来测试完整的HLS工作流程。
为什么HLS流需要多个请求?
HLS 播放获取主播放列表、媒体播放列表、加密密钥(如果存在)以及许多媒体片段。这些请求中的任何一个都可能失败并中断播放。