created: 2020-01-06T03:33:01.000Z
HLSとm3u8ファイルとMaster Playlistについて
こちらの記事の焼き直し
m3u8ファイルとは
こちらがわかりやすかった
HLSを行うためのヘッダファイルのようなもの HLSでは動画をtsファイルという秒単位の細かいファイルへと細切れにして配信を行う m3u8ファイルには、細切れの動画ファイルがそれぞれ何秒から何秒までのデータを保持しているかがまとまっている
ライブ配信の場合にはm3u8ファイルが数秒ごとに更新されるとのこと
m3u8形式ファイルの例
EXTINF:10
というのが動画の秒数を表している
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:10
#EXTINF:10,
file-640-00001.ts
#EXTINF:10,
file-640-00002.ts
#EXTINF:10,
file-640-00003.ts
#ZEN-TOTAL-DURATION:30.02999
#ZEN-AVERAGE-BANDWIDTH:1147001
#ZEN-MAXIMUM-BANDWIDTH:1340365
#EXT-X-ENDLIST
Master Playlist とは
MasterPlaylistファイルは複数のm3u8ファイルをまとめるインデックスファイルのような役割をもっている MasterPlaylistファイルを使うと、通信速度や処理できるファイル形式/ビットレートごとに、 どのm3u8ファイルを参照して動画を再生すればよいかをクライアントデバイスが判断できるようになる
MasterPlaylist形式の例
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1040000,CODECS="mp4a.40.2, avc1.4d4015"
file-640.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=640000,CODECS="mp4a.40.2, avc1.4d4015"
file-640.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=440000,CODECS="mp4a.40.2, avc1.4d4015"
file-640.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=240000,CODECS="mp4a.40.2, avc1.4d4015"
file-640.m3u8