19 03 24 m3uu8 字段解釋

2021-10-02 22:22:40 字數 1940 閱讀 1556

上次我在之前的一篇部落格又說hls是基於http協議的,裡面的傳輸內容包括兩部分,乙個是m3u8檔案還有乙個就是ts的**檔案;

在m3u8中會有許多的標籤,每個標籤都有自己相對應的意思;

在今天我從一些部落格找到乙個關於標籤解釋的list如下:

#extm3u

每個m3u檔案第一行必須是這個tag。

#extinf:,

duration表示持續的時間(秒)必須是整數,如果版本在3以上可以是浮點數。

#extinf

指定每個**段(ts)的持續時間,這個僅對其後面的uri有效,每兩個**段uri間被這個tag分隔開。

#ext-x-byterange

#ext-x-targetduration

指定最大的**段時間長(秒)。所以#extinf中指定的時間長度必須小於或是等於這個最大值。這個tag在整個playlist檔案中只能出現一 次(在巢狀的情況下,一般有真正ts url的m3u8才會出現該tag)。格式如下:#ext-x-targetduration::s表示最大的秒數。

#ext-x-media-sequence

每乙個media uri 在 playlist中只有唯一的序號,相鄰之間序號+1。

#ext-x-media-sequence:

乙個media uri並不是必須要包含的,如果沒有,預設為0。

#ext-x-key

表示怎麼對media segments進行解碼。其作用範圍是下次該tag出現前的所有media uri,格式如下:#ext-x-key::none 或者 aes-128。如果是none,則uri以及iv屬性必須不存在,如果是aes-128(advanced encryptionstandard),則uri必須存在,iv可以不存在。對於aes-128的情況,keytag和uri屬性共同表示了乙個key檔案,通過uri可以獲得這個key,如果沒有iv(initialization vector),則使用序列號作為iv進行編譯碼,將序列號的高位賦到16個位元組的buffer中,左邊補0;如果有iv,則將改值當成16個位元組的16進製制數。

#ext-x-program-date-time

將乙個絕對時間或是日期和乙個**段中的第乙個sample相關聯,只對下乙個meida uri有效,格式如下:#ext-x-program-date-time:yyyy-mm-ddthh:mm:ssz例如:#ext-x-program-date-time:2010-02-19t14:54:23.031+08:00

#ext-x-allow-cache:

是否允許做cache,這個可以在playlist檔案中任意地方出現,並且最多出現一次,作用效果是所有的**段。格式如下:#ext-x-allow-cache:

#ext-x-playlist-type

提供關於playlist的可變性的資訊, 這個對整個playlist檔案有效,是可選的,格式如下:#ext-x-playlist-type::如果是vod,則伺服器不能改變playlist 檔案;如果是event,則伺服器不能改變或是刪除playlist檔案中的任何部分,但是可以向該檔案中增加新的一行內容。

#ext-x-endlist

表示playlist的末尾了,它可以在playlist中任意位置出現,但是只能出現乙個,格式如下:#ext-x-endlist

#ext-x-media

#ext-x-stream-inf

指定乙個包含多**資訊的 media uri 作為playlist,一般做m3u8的巢狀使用,它只對緊跟後面的uri有效,格式如下:#ext-x-stream-inf:有以下屬性:bandwidth:頻寬,必須有。program-id:該值是乙個十進位制整數,惟一地標識乙個在playlist檔案範圍內的特定的描述。乙個playlist 檔案中可能包含多個有相同id的此tag。codecs:不是必須的。resolution:解析度。audio:這個值必須和audio類別的「ext-x-media」標籤中「group-id」屬性值相匹配。video:同上

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也能,只是可能需要對接測試。總...

合併m3u8 ts 檔案的工具

合併ts檔案的程式 include intmain int argc,char ar int num atoi ar 1 int i 0 printf copy b 0.ts for i 1 i num i printf s n ar 2 複製儲存在其他位址 printf del s q n 刪除所...