HLS即HTTP Live Streaming的缩写,是由苹果公司(apple)提出的一种流媒体播出协议。iOS终端(iPhone、iPad、iPod等)以及Android终端都支持该协议。Android和iOS终端对HLS协议的支持是系统内置的,不需要开发额外的组件,通过HTML5网页和系统播放器可以直接播放HLS视频流。

  m3u8是HLS协议的播出索引文件,是HLS协议的播放列表(Playlist),文件内容是utf-8编码的文本数据。HLS协议的播出内容是分片分发的,视频文件(或视频流)会被切成长度大致相等的视频小片段进行分发,m3u8文件描述这些视频片段的排列顺序和下载位置。如果HLS播出内容是加密的,m3u8还描述加密的协议和秘钥获取方式的信息。

 相对其他播出协议,HLS的优势有:

   1、将大文件切分成小的文件片段,使用HTTP协议传输,能够充分利用现有的缓存和CDN加速技术进行快速分发,适合在互联网上进行高效传输

   2、Android和iOS都内置播放器,支持HTML5标签,能够方便的集成到HTML5应用和APP应用中,开发和集成难度低

   3、编码、复用、传输、加密技术都是开放的国际标准,设备和应用集成方便,更容易被接受和使用

  播放器播放HLS流的过程是:1)获取m3u8文件的url位置,2)下载m3u8文件,分析播放列表,3)根据播放列表的定义下载视频片段,4)对视频片段进行解复用、解码和播放。

  m3u8和hls分析工具对HLS协议的分析也遵循这个过程,通过下载和解析m3u8文件来分析判断HLS流的播出情况。

  本文附加包含m3u8下载分析工具,大家可以体验一下。