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 播放取得主播放清單、媒體播放清單、加密金鑰(如果存在)以及許多媒體片段。這些請求中的任何一個都可能失敗並中斷播放。