您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關m3u8指的是什么格式文件的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
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指的是什么格式文件”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。