前言:
HLS是HTTP Live Streaming的缩写。它是苹果公司实现的基于HTTP的流媒体传输协议,可以实现流媒体的直播和点播。
扩展了解:
目前常见的点播视频的格式,mp4、flv、hls等。其中,1、mp4是比较经典的文件格式,其格式较复杂,处理成本较高;2、flv是Adobe力推的标准;3、hls是Apple力推的标准,鉴于其精简的m3u8索引结构所表现出的优势,无疑会使其成为媒体处理的趋势。
HLS流媒体播放的工作流程
1.音视频采集(Live、或录制好的Video) -> 这里“采集”只针对于视频直播,比如说我通过iPhone32(噗,更长了...)设备的麦克风、摄像头来采集音视频,并将其实时上传至服务器。而点播的内容,已经在服务器上了。
2.音视频编码(H.264、AAC)->服务端对视频、音频进行H.264、AAC编码(所谓的编码:将视频文件进行合理的最大化的压缩处理,便于在网络中传输),鉴于H.264具有很高的数据压缩比率,同时还拥有高质量流畅的图像,故而备受“恩宠”。
3.媒体流切片处理(Stream segmenter) ->服务器通过“切割器”对多媒体进行切片处理,生成N多个.ts文件,并对应了一个索引文件(.m3u8)。其中该索引文件记录了视频即 .ts文件的播放顺序,并会作出及时的更新。
4.生成.m3u8(精简的索引结构)和 N多个.ts文件(5~10s) ->这样精简的结构相对于MP4而言,尤其显示了优势之处,首先是便于阅读理解,其次最重要的每个ts文件很小,能够在网络快速传输。而对于用户而言,可以根据网络状况,快速的切换视频码率。另外,.m3u8采用UTF-8编码,接下来咱们看一下该结构: