m3u8 是一種基于 HTTP Live Streaming 文件視頻格式,它主要是存放整個視頻的基本信息和分片(Segment)組成。目前 由 Apple.inc 率先提出的 HLS 協(xié)議在 Mac 的 Safari 上原生支持,你可以直接通過
video.src = 'xxx.m3u8'
來實現(xiàn)。
如果你希望兼容所有的瀏覽器的話, 你需要知道 Chrome 和 Firefox 支持的 Media Source Extensions( 非常不理想,在IE和國內(nèi)具備兼容模式的極速瀏覽器下) 的情況:
目前 Youtube 和 Netflix 等主流視頻網(wǎng)站,即使 FB 的 newsfeed 里面的視頻也采用了 HLS 的解決方案,大致實現(xiàn)流程如下:
其核心,在于對于 m3u8 的文件解析和 通過 XHR 去完成對分片內(nèi)容二進(jìn)制文件的獲取,然后使用 MSE 的 appendBuffer 去進(jìn)行 buffer 的封裝,然后自己完成合流的工作。
目前國內(nèi)的,bilibili 最早實現(xiàn)了基于 MSE 解決方案的播放器,大概為什么他們必須用 MSE 而不是 優(yōu)酷 和 騰訊 的 多 video 方案,可能是錢少,視頻轉(zhuǎn)MP4需要大量服務(wù)器,當(dāng)然 MSE 這是技術(shù)的趨勢。
轉(zhuǎn)換方法:
- 右擊m3u8文件
- 選擇打開方式為【記事本】
- Ctrl+A全選,再按Ctrl+C復(fù)制
- 打開迅雷,新建下載任務(wù)
- 按Ctrl+V復(fù)制
- 點(diǎn)擊開始下載
- 下載完成后可以使用ffmpeg進(jìn)行無損合并。