分发组件除了直接通过Web服务器分发之外,主要指的是CDN分发。在内容注入到CDN后,CDN编码器通过内部优化调度将索引文件和视频小文件分发到各级节点,并通过HTTP协议为用户提供服务。
客户端组件包括了Apple公司支持Http Live Streaming 的所有终端类型,它们先下载索引文件获取视频内容的码率和切片信息,然后根据网络带宽实时请求相应码率的视频切片,并将下载好的切片重新组装,以连续的媒体流形式呈现给用户,如果开展CDN业务,需要了解CDN服务。
索引文件格式为.m3u8,是.m3u文件格式的扩展,.m3u文件常用于音频软件保存.mp3文件的播放列表。.m3u8文件是Http Live Streaming中的关键内容,它保存了视频内容切片后的各种码率大小、片段大小、每个片段的URL地址等重要信息,.m3u8文件还可进行分级,例如第一级的索引文件指明第二级的索引文件,第二级的索引文件指明切片信息等。下面通过一个实例来具体分析.m3u8文件,通过浏览器下载Apple官方网站上的.m3u8文件:http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8,并用记事本打开。
bipbopall.m3u8是一级索引文件,它说明了在当前路径下有4个文件夹gear1、gear2、gear3、gear4,分别保存了 200 000bit/s、311 111bit/s、484 444bit/s、737 777bit/s 4个码率的视频文件,具体每个CDN编码器视频文件的切片信息要查询该路径下的二级索引文件 prog_index.m3u8。用记事本打开gear1文件夹下的prog_index.m3u8。
#EXTM3U
该索引文件说明码率为 200 000bit/s的视频文件共有 181个切片,fileSequence0.ts到fileSequence179.ts共计180个切片,每个10s,fileSequence180.ts是最后一个切片,只有1s。
索引文件和切片文件的对应关系如图14-2所示。