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文件,就可以了。
给大家画了下流程图
所以我们可以知道,索引文件非常重要,索引文件里面存储着ts文件的网络url链接,网站需要拿到索引文件,去按照url链接下载在http服务器中的ts文件,类似于爬虫。
拿到了ts文件之后,本身这些ts文件就是原视频中的一小段视频,所有ts文件下载顺序播放,就完成了整个视频的播放。
而索引文件就是m3u8文件。
现在大部分视频网站传输都是采用这种方法,所以,也就是说,如果你在观看网页视频的时候,能够弄到加载该视频的m3u8文件,那么再配合一些工具,就能下载该视频了。
该工具的作用就类似于视频网站,能够根据索引文件去下载ts文件。
参考:【全网最全】m3u8到底是什么格式?一篇文章搞定m3u8下载 - 知乎
视频点播支持视频转码的输出格式主要有DASH、HLS和MP4,这三种的播放体验如表1所示。
表1 视频播放体验比较
视频格式 | 播放体验 | 流量占用情况 |
DASH |
| 小。 |
HLS |
| 整体占用小,播放一个切片只下载一个切片内容;对于低码率的视频场景,因封装代价高导致流量占用相对较高。 |
MP4 |
| 拖动时间轴播放时,仍然需要下载整个头文件,耗费流量大;因流量占用较大,建议用在短视频处理的场景。 |