首頁  >  文章  >  m3u8是什麼格式文件

m3u8是什麼格式文件

青灯夜游
青灯夜游原創
2021-03-11 13:39:49161995瀏覽

m3u8是指UTF-8編碼格式的M3U檔案;M3U檔案是記錄了一個索引純文字文件,打開它時播放軟體並不是播放它,而是根據它的索引找到對應的音視頻文件的網路位址進行線上播放。

m3u8是什麼格式文件

本教學操作環境:windows7系統、Dell G3電腦。

一、M3U8簡介

M3U8檔案是指UTF-8編碼格式的M3U檔案(M3U使用Latin-1字元集編碼) 。 M3U文件是一個記錄索引的純文字文件,打開它時播放軟體並不是播放它,而是根據它的索引找到對應的音視頻文件的網絡地址進行在線播放。其流程如下:

m3u8是什麼格式文件
m3u8播放流程.png

M3U8是一種常見的串流媒體格式,主要以檔案清單的形式存在,既支援直播又支持點播,尤其在Android、iOS等平台最常使用。

二、M3U8編碼格式

#m3u8基本上可以認為是.m3u格式文件,差別在於,m3u8檔案使用UTF-8字符編碼。
#EXTM3U                     m3u檔案頭,必須放在第一行
#EXT-X-MEDIA-SEQUENCE      第一行
EXT-X-MEDIA-SEQUENCE      最大的長度
#EXT-X-ALLOW-CACHE          是否允許cache
#EXT-X-ENDLIST              m3u8檔案結束符號## cEXTITI 製造片       的訊息,如時長,頻寬等
#EXT-X-PLAYLIST-TYPE    提供關於PlayList的可變性的信息,對整個PlayList檔案有效,是可選項。格式如下:#EXT-X-PLAYLIST-TYPE:VOD(或EVENT)。 VOD表示伺服器不能改變PlayList 檔案;EVENT則表示伺服器不能改變或刪除PlayList檔案中的任何部分,但可以新增一行內容到該檔案的內容。

範例1:

M3U8檔案參考連結: https://dco4urblvsasc.cloudfront.net/811/81095_ywfZjAuP/game/1000kbps.m3u8 及內容:

#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:10
#EXTINF:10,
1000kbps-00001.ts
#EXTINF:10,
1000kbps-00002.ts

...

#EXTINF:10,
1000kbps-00099.ts
#EXTINF:10,
1000kbps-00100.ts
#ZEN-TOTAL-DURATION:999.70000
#ZEN-AVERAGE-BANDWIDTH:1098134
#ZEN-MAXIMUM-BANDWIDTH:1700874
#EXT-X-ENDLIST
這種形式的播放及下載連結需要拼接,如第一個TS片段的連結為:https://dco4urblvsasc.cloudfront.net/811/81095_ywfZjAuP/game/1000kbps-00001.ts,即索引檔案中的路徑1000kbps-00001.ts替換m3u8連結末端的1000kbps.m3u8(也即lastPathComponent)。

事例2:

使用云图TV点播直播节目时,发送请求:
http://121.199.63.236:7613/m3u8/cckw1/szws.m3u8?from=bab&fun=yes&chk=y&chunk=xax&ppw=yuntutv&auth=yuntutvyuntutvyuntutv&auth=yuntutvyuntutvyuntutv&nwtime=1406515232&sign=033d5483609e6bc87987fc7d2f30a024

返回M3U8文件,文件内容如下:
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:140651513
#EXT-X-TARGETDURATION:10
#EXTINF:8,
http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651513[140651513].ts
#EXTINF:9,
http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651514[140651514].ts
#EXTINF:11,
http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651515[140651515].ts
#EXTINF:10,
http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651516[140651516].ts
#EXTINF:12,
http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651517[140651517].ts
#EXTINF:8,
http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651518[140651518].ts
#EXTINF:12,
http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651519[140651519].ts
#EXTINF:8,
http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651520[140651520].ts
#EXTINF:9,
http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651521[140651521].ts
#EXTINF:13,
http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651522[140651522].ts

...
這種形式的播放與下載連結:直接呈現在索引檔中了。

三、M3U8的優點

1、可以做多碼率的適配。依照網路頻寬,用戶端會自動選擇一個適合自己碼率的檔案來播放,確保視訊串流的流暢,代表是蘋果的HLS(HTTP Live Streaming)。 HLS有一個特點:自適應碼率流播(adaptive streaming),客戶端可以根據網路狀況自動選擇不同碼率的視訊串流,條件允許的情況下使用高碼率,網路繁忙的時候使用低碼率,並且自動在二者間隨意切換。這對行動裝置網路狀況不穩定的情況下保障流暢播放非常有幫助。

2、降低來源伺服器的負載壓力。 M3U的特點是將串流媒體切割成若干 TS 片段,然後透過一個擴展的 m3u 清單檔案將這些 TS 片段集中起來供客戶端播放器接收。這樣做相比使用RTSP 協定的好處在於,一旦切分完成,之後的分發過程完全不需要額外使用任何專門軟體,普通的網路伺服器即可,大大降低了CDN 邊緣伺服器的配置要求,可以使用任何現成的CDN。分發使用的協定是最常見 HTTP,代理伺服器對這個協定的快取優化相當成熟,而很少代理伺服器對 RTSP 的進行快取優化。

3、對於非即時視頻,好處同樣存在:播放使用HTTP協定的單一MP4 格式的視訊檔案時,需要代理伺服器支援HTTP range request 以取得大檔案中的一部分,但不是所有的代理伺服器都對此有良好的支援。而 M3U 則只需要根據清單檔案中的時間軸找出對應的 TS 片段下載即可,不需要 range request,對代理伺服器的要求小很多。所有代理伺服器都支援小文件的高效快取。

4、為什麼要用TS 而不是MP4,這是因為兩個TS 片段可以無縫拼接,播放器能連續播放,而MP4 檔案由於編碼方式的原因,兩段MP4 不能無縫拼接,播放器連續播放兩個MP4 檔案會出現破音和畫面間斷,影響使用者體驗。

更多相關知識,請造訪

常見問題欄位!

以上是m3u8是什麼格式文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn