HLS 概述
HLS 全称是 HTTP Live Streaming, 是一个由 Apple 公司实现的基于 HTTP 的媒体流传输协议. 他跟 DASH 协议的原理非常类似. 通过将整条流切割成一个小的可以通过 HTTP 下载的媒体文件, 然后提供一个配套的媒体列表文件, 提供给客户端, 让客户端顺序地拉取这些媒体文件播放, 来实现看上去是在播放一条流的效果.
由于传输层协议只需要标准的 HTTP 协议, HLS 可以方便的透过防火墙或者代理服务器, 而且可以很方便的利用 CDN 进行分发加速, 并且客户端实现起来也很方便.
HLS 目前广泛地应用于点播和直播领域.
在 HTML5 页面上使用 HLS 非常简单:
直接:
<video src="example.m3u8" controls></video> 或者: <video controls> <source src="example.m3u8"></source> </video>
下面, 我将会概括性地介绍 HLS 协议的方方面面(并且包括 AES 加密部分的内容), 配合 HLS 的 RFC 食用效果更佳.
HLS 协议详解
hls_arch 上面是 HLS 整体架构图, 可以看出, 总共有三个部分: Server, CDN, Client.
其实, HLS 协议的主要内容是关于 M3U8 这个文本协议的, 其实生成与解析都非常简单. 为了更加直接地说明这一点, 我下面举两个简单的例子:
简单的 Media Playlist:
#EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:8 #EXT-X-M