HLS学习笔记(一):基础分享

         一直都是在搜索查询别人分享的技术总结和经验,自己也总是在一个接着一个项目的去做,没有停下脚步来做自己的总结和分享,最近做的项目接触到HLS相关的协议问题,正好学习总结,将相关的经验总结记录下来,希望自己能够将学习应用过的知识系统化,也希望能够与相关从业的码农们多多交流,欢迎大家提出宝贵意见。
进入正题,先进行一些介绍:
        HLS (HTTP Live Streaming)是动态码率自适应技术,核心包括m3u8的索引文件,ts媒体分片文件和key加密串文件,该技术基于HTTP的流媒体传输协议。
HLS 协议正在逐渐的发展,目前网络上主要是 HLS V3/V4/V5 协议,可以根据 IETF 的 HLS 官方文档和 RFC 文档进行了解。
相关链接:https://tools.ietf.org/html/draft-pantos-http-live-streaming-00

相关历史简要:

文档时间版本更新

草案00

2009/06/08

V1

初始版本

草案02

2009/10/05

V2

1、加入 EXT-X-DISCONTINUITY 标签。

此标签提示播放器重置编码参数、文件格式、时

间戳等内容。

可用于将数段视频放到一个 M3U8 中,比如无缝

在视频内插入广告内容。

2、增加对 HTTP 头中 Content-Type 的要求。

规定视频索引的 MIME

’application/vnd.apple.mpegurl’

3、支持了冗余流。

这个特性对增强流的可用性起到了相当大的作

用,且给视频 CDN 的可用性架构留下了腾挪空

间;

草案05

2010/11/19

V3

允许在 EXTINF 标签中指定小数的文件片时长。

这是一个特别迫切的需求;

之前的版本规定文件片时长只能是整数。本来一

片也只有几秒钟,抹去小数位会对客户端 seek

buffer 的计算精度产生相当的影响度。

草案07

2011/09/30

V4

1、增加了 EXT-X-BYTERANGE 标签。

此标签用以说明指定 URI 的某个偏移之后才是提

供给 HLS 的文件片;

此功能有助于原先全是的大文件的视频供应商们

HLS 的迁移;

2、可以在 EXT-X-STREAM-INF 标签的属性列表

中直接指明当前流是 VIDEO 还是 AUDIO

3、增加了 EXT-X-MEDIA 标签。

此标签用于指定与主播出流相同地位的一些可替

代流;

可以基于此标签实现多音轨选择或者多机位多视

角的切换;

4、增加了 EXT-X-I-FRAMES-ONLY 和

EXT-X-I-FRAME-STREAM-INF 标签。

如果它们存在,说明播出流是一个只包含 I 帧的流;可利用此功能实现类似 GIF 或者数字电影的功能;

草案09

2012/09/22

V5

1、新增了 EXT-X-MAP 标签。

此标签用于指示在 EXT-X-I-FRAMES-ONLY

流中如何获取 MPEGTS PAT/PMT 信息;

通常是另附 URI 的方式。

2、给 EXT-X-KEY 标签增加了 KEYFORMAT

KEYFORMATVERSIONS 属性。

用以详细说明加密密钥的打包方式;

3、通过扩展 EXT-X-STREAM-INF

EXT-X-MEDIA 标签支持了字幕功能;

草案 12

2013/10/14

V6

1、允许不包含 EXT-X-I-FRAMES-ONLY 标签的

流使用 EXT-X-MAP

2、删除 EXT-X-STREAM-INF

EXT-X-I-FRAME-STREAM-INF 标签的

PROGRAM-ID 属性。

草案 14

2014/10/14

V7

文档结构做了很大的调整;

支持 EXT-X-MEDIA 标签的 INSTREAM-ID

SERVICE 值,3. EXT-X-ALLOW-CACHE 标签

被移除

草案 23

2017/03/22

V7

最新文档

RFC8216

2017/08

V7

RFC 发布

由于自身项目需求,后续所有的内容都是基于V3或者V5版本来进行分享。

一般播放流程图及HLS所处位置:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值