1、工作原理
HLS协议的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。
2、简述
在服务器端,流媒体文件被切割成一个一个的小分片,这些小分片有着相同的时长(常用10s),每一个小分片是一个ts文件。同时 产生一个索引文件(m3u8),索引文件里存放了ts文件的URL。
客户端请求方式分两种,一种是点播(vod),一种是直播(live)
vod:客户端一次获取整个m3u8文件,按照里面的URL获取ts文件,采用HTTP协议。
live:由于M3u8文件时实时更新的,所以客户端每隔一段时间获取m3u8文件,再根据里面的URL获取ts文件,采用HTTP协议。
3、HLS的请求流程
- 1 http 请求 m3u8 的 url。
- 2 服务端返回一个 m3u8 的播放列表,这个播放列表是实时更新的,一般一次给出5段数据的 url。
- 3 客户端解析 m3u8 的播放列表,再按序请求每一段的 url,获取 ts 数据流。
4、索引文件(m3u8)格式
(1)主索引
#EXTM3U //每一个m3u8文件的第一句必须是这个tag,起标示作用
#EXT-X-VERSION:3 // 用于标示协议版本
#EXT-X-STREAM-INF : [attribute=value][,attribute=value]