简单了解
HLS(HTTP Live Streaming)协议
是由苹果公司实现的基于HTTP的流媒体通信协议,并成为Quick TIme X和IPhone软件系统的一部分。苹果的IPad也有支持HLS的能力。
HLS传出的视频文件为基于MPEG2文件的切片,每个媒体切片在服务器上单独存放。在一个流媒体文件分片过程中,视频处理程序读取连续的输入流,将其切割为等长的切片,默认长度为10秒。该程序还会生成一个m3u8格式列表文件,其中包含了切片列表和每个切片的具体信息。m3u8是m3u列表格式的扩展,m3u8文件具有两层分级架构,在文件起始处用#EXTM3U标签以示区别。在一级列表中,以#EXT-X-STREAM-INF标签起始提供各比特率的视频列表地址,该地址可以链接到另一个二级m3u8文件上,二级m3u8列表提供了所有同一比特率的视频切片的时长和URL地址。
HLS协议的流媒体传输过程是首先服务器在资源准备阶段将不同比特率的食品切片并分别存储,同时生成两级或更多级的M3u8文件。传输开始时,客户端首先从服务器上请求并下载m3u8文件,通过解析该文件得到视频切片信息,选择适合当前状况的切片,提取出该切片的URL地址,直接通过该地址向服务器发起请求。因此,服务器端不需要任何额外的处理,任意Web服务器都可以配置成支持HLS协议的服务器。
DASH的提出
除了HLS,其他的动态自适应流媒体技术还有微软的IIS Smooth Streaming,Adobe公司的Dynamic Streaming等。这些共存的协议采用的技术80%是相同的,但是100%是不相兼容的。为了对业界存在的多种自适应流技术进行规范,MEPG推出MEPG-DASH标准。旨在为动态自适应流媒体技术创造一种同一的协议标准。DASH也得到了许多公司的支持,Apple,Adobe,Microsoft,Netflix,Qualcomm表示只要DASH完成,就会支持这个标准。
因此HLS和DASH的区别主要如下图:
DASH基于MEPG-DASH流媒体协议的系统架构如下图:
参考