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