HLS 视频点播初探 - 腾讯云开发者社区-腾讯云

HTTP Live Streaming(HLS)是苹果公司实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播。原理上是将视频流分片成一系列HTTP下载文件。特点是将流媒体切分为若干 TS 片段(比如每10秒一段),然后通过一个扩展的 m3u8 列表文件将这些 TS 片段集中起来供客户端播放器接收。索引文件就是m3u8文件。

视频播放的过程

现在的视频网站采用的是流媒体传输协议,就是将一段视频切成无数个小段,这几个小段就是ts格式的视频文件,一段一段的网站上播放。

这样做的好处是观看更加流畅,因为他会根据网络状况自动切换视频的清晰度,在网络状况不稳定的情况下,对保障流畅播放非常有帮助。

我们可以了解下,一个视频播放的全过程。

1.服务器采集编码传输视频到切片器
2.切片器对视频创建 索引文件,并且 切割n个ts文件
3.这2个文件传输到http服务器上
4.网站/客户端根据 索引文件查找http服务器上的 ts文件,连续播放这n个ts文件,就可以了。

给大家画了下流程图

IOS怎么查看M3U8地址 苹果m3u8视频文件怎么播放_面试

所以我们可以知道,索引文件非常重要,索引文件里面存储着ts文件的网络url链接,网站需要拿到索引文件,去按照url链接下载在http服务器中的ts文件,类似于爬虫。

拿到了ts文件之后,本身这些ts文件就是原视频中的一小段视频,所有ts文件下载顺序播放,就完成了整个视频的播放。

而索引文件就是m3u8文件。

现在大部分视频网站传输都是采用这种方法,所以,也就是说,如果你在观看网页视频的时候,能够弄到加载该视频的m3u8文件,那么再配合一些工具,就能下载该视频了。

该工具的作用就类似于视频网站,能够根据索引文件去下载ts文件。

参考:【全网最全】m3u8到底是什么格式?一篇文章搞定m3u8下载 - 知乎

视频点播支持视频转码的输出格式主要有DASH、HLS和MP4,这三种的播放体验如表1所示。

表1 视频播放体验比较


视频格式

播放体验

流量占用情况

DASH

  • 对视频进行切片,按切片播放,缓存小起播快;
  • 拖动时间轴到任意时间播放时,可以快速定位到对应的切片进行播放,响应快。

小。

HLS

  • 对视频进行切片,按切片播放,缓存小起播快;
  • 拖动时间轴到任意时间播放时,可以快速定位到对应的切片进行播放,响应快。

整体占用小,播放一个切片只下载一个切片内容;对于低码率的视频场景,因封装代价高导致流量占用相对较高。

MP4

  • 头文件较大,边下边缓存,起播相对HLS和DASH慢一些;
  • 拖动时间轴播放时,需要一定的时间缓存;
  • 市场上大多数的浏览器客户端均能够播放,播放成功率高。

拖动时间轴播放时,仍然需要下载整个头文件,耗费流量大;因流量占用较大,建议用在短视频处理的场景。