HLS协议简介

HTTP Live Streaming(HLS)是苹果公司实现的基于HTTP流媒体网络传输协议,可实现点播和直播。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率

其组成部件如下:

           HLS协议简介_第1张图片

主要分为4部分,第一部分是音视频采集部分,第二部分实现音视频编码,第三部分为HLS分段生成策略及m3u8索引文件,第四部分是HTTP通信协议。

HLS协议中有几项规定:

1、视频的封装格式为TS(ts文件可以无缝拼接)

2、视频的编码格式为H264,音频编码格式为MP3/AAC或AC-3

3、除了TS视频本身,还定义了用来控制播放的m3u8文件

m3u8文件可以分一级和二级,描述多码率的为一级,包含不同码率的媒体源和各自的访问地址,可以发现媒体源的地址也是指向的m3u8文件,这就是二级m3u8文件。

客户端(播放器)首先会下载一级m3u8,得知这份媒体文件是多码率数据源,客户端后续会自己主动跟踪当前网络情况,来判断这段ts文件应该播什么码率。

具体码率的媒体内容则是由二级文件m3u8来描述,由服务器端提供给客户端下载。

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:23
#EXT-X-ALLOW-CACHE:YES
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="https://www.demo.com/key?id=123",IV=0x00000000000000000000000000000000
#EXTINF:23.000,
https://www.demo.com/0.ts
#EXT-X-KEY:METHOD=AES-128,URI="https://www.demo.com/key?id=123",IV=0x11111111111111111111111111111111
#EXTINF:16.667,
https://www.demo.com/1.ts
...
#EXT-X-ENDLIST

 

你可能感兴趣的:(播放器)