m3u8是指UTF-8編碼格式的M3U文件;M3U文件是記錄了一個索引純文本文件,打開它時播放軟件并不是播放它,而是根據它的索引找到對應的音視頻文件的網絡地址進行在線播放。
一、M3U8簡介
M3U8文件是指UTF-8編碼格式的M3U文件(M3U使用Latin-1字符集編碼)。M3U文件是一個記錄索引的純文本文件,打開它時播放軟件并不是播放它,而是根據它的索引找到對應的音視頻文件的網絡地址進行在線播放。其流程如下:
m3u8播放流程.png
M3U8是一種常見的流媒體格式,主要以文件列表的形式存在,既支持直播又支持點播,尤其在Android、iOS等平臺最為常用。
二、M3U8編碼格式
m3u8基本上可以認為就是.m3u格式文件,區別在于,m3u8文件使用UTF-8字符編碼。
#EXTM3U m3u文件頭,必須放在第一行
#EXT-X-MEDIA-SEQUENCE 第一個TS分片的序列號
#EXT-X-TARGETDURATION 每個分片TS的最大的時長
#EXT-X-ALLOW-CACHE 是否允許cache
#EXT-X-ENDLIST m3u8文件結束符
#EXTINF extra info,分片TS的信息,如時長,帶寬等
#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指的是什么格式文件”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
我國資本市場什么時候開始的?中國資本市場是隨著1990年深滬交易所的成立,開始正式出現的。1990年, 上海, 深圳兩家證券交易所正式開放營業。在資本市場創立了的開始,不少的人還在議論和猶豫。直到1992年1月份 “鄧小平的講話”,才讓資本市場迅速開始發展。資本市場包括哪些?資本市場市場包括:股票、債券和基金業務。1.股票它是股份公司發行的所有權憑證,是股份公司向每一位股東...
根據國家網貸的規定,捷信是屬于高利貸,對于超過國家規定的貸款利率部分是需要退還給用戶的,那么捷信退利息是在哪里退?捷信辦理退息是需要通過關注“聚投訴”微信公眾號,按照公眾號的提示進行操作并提交好有關貸款的證明資料之后,就會有捷信官方工作人員聯系用戶辦理退息手續。需要注意的是,捷信退息退還的只是超出國家規定范圍內的利息。捷信怎么退利息流程【1】首先借款人要準備借款證明、利息證...
我國的證券交易所分為上海證券交易所與深圳證券交易所,簡稱滬深兩市,那么你知道滬市A股和深市A股有什么區別嗎?一起來看看吧。滬市A股和深市A股有什么區別?滬市A股和深市A股的區別主要有代碼不同、板塊不同、部分股票上市條件不同、部分股票的交易門檻不同等區別?!?】代碼不同:滬市A股以6開頭,深市A股則以000、002或者300開頭?!?】板塊不同:滬市A股包括滬市主板以及科創板兩大板塊,深市A股則包括...