本文最后更新于 1311 天前,其中的信息可能已经有所发展或是发生改变。
维基百科: M3U8 是 Unicode 版本的 M3U,用 UTF-8 编码。"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础,这种协议格式可以在 iPhone 和 Macbook 等设备播放。
也就是说m3u8是HLS协议的一部分,而HLS协议是苹果公司提出的一种基于HTTP的流媒体网络传说协议,其原理是将一个大的媒体文件分割成很多分片文件,该分片的URL路径和资源描述(分片帧率、分辨率等信息)记录在m3u8文件中,准确的说m3u8是一种索引文件。
使用m3u8格式文件主要因为可以实现多码率视频网络地址,客户端根据当前网络带宽情况动态选择合适的码率视频分片文件进行播放,提升不同网络环境下用户的体验度。
m3u8和MP4视频文件的对比
-
m3u8基于苹果公司的HLS协议,目前Android、iOS系统均提供支持,使用HTTP协议即可完成视频的请求和播放,基于HTTP的渐进式下载,根据网络状况动态选择合适的视频分片,用户体验较好。而且它部署简单,基于HTTP协议,不会受到防火墙的拦截。
-
MP4格式对HTTP和Flash都比较友好,但是MP4文件头部结果比较复杂,播放过程对网络带宽要求较高,在网络复杂的场景用户体验较差。采用MP4视频格式,数据传输过程肯定要采用RTP协议,实现部署麻烦,容易遭受防火墙拦截。
M3U8并不是视频文件,它只是个包含播放片断的地址列表文件。你可以理解为M3U8文件里,记录着一个大的视频文件分段后,每一段视频的播放地址。