M3U8的簡單介紹和在Android中使用

2021-06-28 23:05:58 字數 1672 閱讀 7057

在專案中有用到m3u8,現在寫篇博文,算是簡單的總結

我總結了一下我遇到的m3u8格式,雖然不能說涵蓋了全部的情況,但是也差不多了:

1、一級目錄(我覺著一級的目錄沒有適配位元速率的功能)

1.1、

2、二級目錄

2.1、二級位址在一級檔案中直接能看到

篇幅關係我不能給大家全部列舉出這些全部的可能性。我就拿最麻煩的舉個例子,其他的大家自行腦補吧,原理都是一樣的,怎麼樣都跑不出協議的範疇之外。

我們在瀏覽器中輸入bipbopall.m3u8的檔案,此檔案的內容如下:

#extm3u

#ext-x-stream-inf:program-id=1, bandwidth=200000

gear1/prog_index.m3u8

#ext-x-stream-inf:program-id=1, bandwidth=311111

gear2/prog_index.m3u8

#ext-x-stream-inf:program-id=1, bandwidth=484444

gear3/prog_index.m3u8

#ext-x-stream-inf:program-id=1, bandwidth=737777

gear4/prog_index.m3u8

這就符合上面的2.2種情況,這四種位元速率的m3u8的位址你都不能直接得到,那怎麼辦呢,我們用得到這個檔案的鏈結位址的前半段gear1/prog_index.m3u8得到乙個位址

#extm3u

#ext-x-targetduration:10

#ext-x-media-sequence:0

#extinf:10, no desc

filesequence0.ts

#extinf:10, no desc

filesequence1.ts

#extinf:10, no desc

filesequence2.ts

#extinf:10, no desc

filesequence3.ts

#extinf:10, no desc

filesequence4.ts

#extinf:10, no desc

filesequence5.ts

#extinf:10, no desc

.

.

.

#extinf:10, no desc

filesequence179.ts

#extinf:1, no desc

filesequence180.ts

#ext-x-endlist

我舉的這個例子是最複雜的情況,一般的情況對於這個來說都是相對簡單的。就跟軟體設計一樣,我們先考慮到最難得情況,簡單的來說就迎刃而解了

此篇博文沒有具體介紹m3u8的格式,各位看管不了解的話還請自行google之。

M3U8檔案分析

最近在研究hls協議,經常要看m3u8檔案內容,所以就介紹一下裡面的內容代表啥意思。檔案內容如下所示 extm3u ext x version 3 ext x targetduration 12 ext x media sequence 0 extinf 11.11,test shandong007...

HLS 直播協議m3u8詳解

ios上苛刻的穩定性要求 ios上最穩定的當然是hls,穩定性不差於rtmp在pc flash上的表現。友好的cdn分發方式 目前cdn對於rtmp也是基本協議,但是hls分發的基礎是http,所以cdn的接入和分發會比rtmp更加完善。能在各種cdn之間切換,rtmp也能,只是可能需要對接測試。總...

vue使用videojs控制後台m3u8資料請求

關於video.js的使用方法就不再說了,有興趣的請遷躍 videojs中並沒有stop之類控制後台資料請求的引數,只有暫停 video.pause 方法 但是對於後台的請求是不會暫停的,如果我頁面有多個vedio例項需要存在,這樣就太影響頁面效率了 我使用的是vue 元件化的vediojs控制項 ...