m3u8是什么文件
M3U8是一種常見的流媒體格式,主要以文件列表的形式存在,既支持直播又支持點(diǎn)播,尤其在Android、iOS等平臺最為常用。
M3U8的優(yōu)點(diǎn)
1、可以做多碼率的適配。根據(jù)網(wǎng)絡(luò)帶寬,客戶端會自動選擇一個適合自己碼率的文件進(jìn)行播放,保證視頻流的流暢,代表是蘋果的HLS(HTTP Live Streaming)。HLS有一個特點(diǎn):自適應(yīng)碼率流播(adaptive streaming),客戶端可以根據(jù)網(wǎng)絡(luò)狀況自動選擇不同碼率的視頻流,條件允許的情況下使用高碼率,網(wǎng)絡(luò)繁忙的時候使用低碼率,并且自動在二者間隨意切換。這對移動設(shè)備網(wǎng)絡(luò)狀況不穩(wěn)定的情況下保障流暢播放非常有幫助。
2、降低源服務(wù)器的負(fù)載壓力。M3U的特點(diǎn)是將流媒體切分為若干 TS 片段,然后通過一個擴(kuò)展的 m3u 列表文件將這些 TS 片段集中起來供客戶端播放器接收。這樣做相比使用 RTSP 協(xié)議的好處在于,一旦切分完成,之后的分發(fā)過程完全不需要額外使用任何專門軟件,普通的網(wǎng)絡(luò)服務(wù)器即可,大大降低了 CDN 邊緣服務(wù)器的配置要求,可以使用任何現(xiàn)成的CDN。分發(fā)使用的協(xié)議是最常見 HTTP,代理服務(wù)器對這個協(xié)議的緩存優(yōu)化相當(dāng)成熟,而很少有代理服務(wù)器對 RTSP 的進(jìn)行緩存優(yōu)化。
3、對于非實時視頻,好處同樣存在:播放使用HTTP協(xié)議的單個 MP4 格式的視頻文件時,需要代理服務(wù)器支持 HTTP range request 以獲取大文件中的一部分,但不是所有的代理服務(wù)器都對此有良好的支持。而 M3U 則只需要根據(jù)列表文件中的時間軸找出對應(yīng)的 TS 片段下載即可,不需要 range request,對代理服務(wù)器的要求小很多。所有代理服務(wù)器都支持小文件的高效緩存。
4、為什么要用 TS 而不是 MP4,這是因為兩個 TS 片段可以無縫拼接,播放器能連續(xù)播放,而 MP4 文件由于編碼方式的原因,兩段 MP4 不能無縫拼接,播放器連續(xù)播放兩個 MP4 文件會出現(xiàn)破音和畫面間斷,影響用戶體驗。
M3U8文件是指UTF-8編碼格式的M3U文件(M3U使用Latin-1字符集編碼)。M3U文件是一個記錄索引的純文本文件,打開它時播放軟件并不是播放它,而是根據(jù)它的索引找到對應(yīng)的音視頻文件的網(wǎng)絡(luò)地址進(jìn)行在線播放。