阅读本文前,务必先阅读前面这篇文章,手把手搭建流媒体服务器详细步骤。因为本篇文章是在这篇文章的基础上搭建。
1.HLS简述
HLS是Apple 提出的⼀种基于 HTTP 的协议,HLS(HTTP Live Streaming)⽤于解决实时⾳视频流的传输。尤其是在ios移动端,由于 iOS /H5 不⽀持 flash,使得 HLS 成了ios移动端实时视频流传输的⾸选。HLS经常⽤在直播领域,⼀些国内的直播云通常⽤ HLS 拉流(将视频流从服务器拉到客户端)。HLS最大的缺点就是延迟严重,延迟通常在10-30s 之间。
英文本协议地址如下,可以详细阅读。
HLS英文版协议:https://tools.ietf.org/html/draft-pantos-http-live-streaming-06
协议有如下部分:
苹果开发者官网:https://developer.apple.com/streaming/
2.HLS数据流整体框架
HLS数据流向的整体框架如下图所示。其主要分为以下几步:
(1)推流端把采集,编码,封装的数据数据发送到服务端。
(2)Stream segmenter是指把码流分片。对直播或点播流进行分片,分片的数量是固定,每个分片的时长也是固定,如5个分片,每个分片为5s,分片时间没有办法精确到毫秒,因为分片一般默认都是从I帧开始,保证一个完整的GOP。如果分配数量为5,那么就是最多缓存5个分片,只会保存最新分片,过时的分片就会删除。如有当前有12345个分片。当第6个分片加进来,则第一个分片就会被删除。