M3U8格式小結(jié)
-
Header
EXTM3U
EXT-X-TARGETDURATION:12
EXT-X-VERSION:3
```
-
Footer
#EXT-X-ENDLIST
-
Body
#EXTINF:A, http://ac-gql3ob7p.uu.com/2c6a453bdd824.mp4 #EXTINF:B, http://ac-gql3ob7p.clouddn.com/2c6a453bdd8171b07924.flv #EXTINF:C, http://ac-gql3ob7p.clouddn.com/2c6a453bdd8171b07924.ts
以上是格式結(jié)構(gòu)分解帝美,頭部的定義還不是特別清楚言秸,所以找了一個(gè)現(xiàn)成的。
通過測試藕各,總結(jié)了M3U8格式文件的一些特點(diǎn)。
當(dāng)播放器播放M3U8的時(shí)候,實(shí)際上M3U8是一個(gè)播放列表,把一些小視頻組合在一起播放吝梅,理論上只要符合格式要求,里面可以放任何不同的視頻格式惹骂,只要你當(dāng)前的播放器支持苏携,只要你里面放的URL正確有效。
當(dāng)播放器加載一個(gè)M3U8的時(shí)候对粪,界面計(jì)算了視頻的總長度右冻,該長度是根據(jù)#EXTINF:之后的數(shù)字累加而得,也就是說A+B+C著拭。然而播放器在真正開始播放視頻的時(shí)候纱扭,會加載真實(shí)視頻下的時(shí)間,也就是說如果你所有視頻長度加起來只有30秒儡遮,即使你這里A+B+C結(jié)果為30分鐘乳蛾,也就只有剛開始播放器顯示30分鐘,一旦播放就會顯示真實(shí)時(shí)間鄙币。當(dāng)然肃叶,播放器只計(jì)算了目前在播放的小片段以及已經(jīng)緩沖的內(nèi)容,如果希望得到正確的時(shí)間請寫正確的時(shí)間十嘿,有一個(gè)小技巧就是因惭,如果你提前知道M3U8的總時(shí)間,那就在第一段寫上總時(shí)間绩衷。
通過測試#EXTINF:之后的數(shù)字寫不寫都能通過蹦魔,但是影響播放體驗(yàn),不便于進(jìn)度條邏輯的處理咳燕。
M3U8在移動端的支持還是比較好的勿决,iOS和Android原生都支持這種播放形式,在PC端可能要借助各種工具了迟郎。
M3U8還有一個(gè)最重要的特點(diǎn)剥险,就是必須掛起在網(wǎng)絡(luò)上播放,所以請至少在本地服務(wù)器上掛著宪肖,通過http:127.0.0.1/videos/xxx.m3u8來播表制。
PS:由于地址是網(wǎng)上個(gè)人的云空間,所以文中都是改過的地址控乾,不能讓讀者測試么介,這點(diǎn)請見諒!如果有新的發(fā)現(xiàn)會繼續(xù)總結(jié)蜕衡。