协议边界
m3u8 是 HLS playlist。浏览器真正播放的是 playlist 引用的 TS 或 fMP4 segment,因此排查时需要同时看 playlist、segment、CORS 和编码。
播放与检测逻辑
- 浏览器播放能力取决于协议、封装、编码、CORS、MIME type、HTTPS mixed content 和源站鉴权。
- HLS、MP4、HTTP-FLV、WS-FLV、HTTP-TS 和 HTTP-fMP4 可以在满足浏览器能力时尝试播放。
- RTSP、RTMP、SRT 不是 HTML video 可直接播放的协议,需要服务端代理或转换。
常见问题
m3u8 地址为什么需要 CORS?
hls.js 需要用 fetch/XHR 读取 playlist 和 segment,跨域资源如果没有正确 CORS 响应头会被浏览器拦截。
m3u8 MIME type 应该是什么?
常见 MIME type 是 application/vnd.apple.mpegurl 或 application/x-mpegURL。segment 也要返回正确媒体类型。
分享链接会保存我的流地址吗?
工具不会主动存储地址,但分享链接会把 URL 放进 query,不要分享带私密 token 的流地址。