播放模式
- 桌面 Chrome / Firefox:hls.js MSE + 自訂 Loader(C2C→edge→source)
- iPhone / iPad Safari:自動切換 Service Worker 原生 HLS(SW 代理 m3u8 / 切片)
下載路徑
m3u8 → 純 HTTP(tracker / source)
video/init.mp4、audio/init.mp4 → 純 HTTP(edge→source,兩軌各一份)
- 媒體切片
seg-*.m4v → C2C → edge → source(需啟用 P2P)
切片分片規則
Tracker GET /api/channels/{id}/hosts 回傳各 edge 的
slice_indices(負責的餘數 N)。從檔名取出檔案編號,
計算 檔案編號 % 10 = N;若 N 落在該 edge 的
slice_indices 內,就向該 edge 請求。
Edge 不存放完整節目,僅快取被指派的餘數分片。
例:edge2 負責 {1,3,5,7,9} → 檔案編號
13(13%10=3)、25(25%10=5)、
37(37%10=7)、999(999%10=9)皆由 edge2 提供。
Demo 伺服器
- Tracker:
https://demo1.unblock888.com:7201
- Source:
https://demo1.unblock888.com:7001
- Edge:
https://demo1.unblock888.com:7101
- Trans:
https://demo1.unblock888.com:7301