原文
对于一般的视频文件,HTML5都能很好的处理,但是据研究发现,HTML5还无法用于在线直播视频节目。不过苹果已经通过HTTP Live Streaming对HTML5的这一不足之处进行了弥补,它可以通过HTTP传输H.264的文件块,但目前这项技术只能用于Safari浏览器上。
苹果平台上的媒体流播放技术HLS
1.必须使用H.264的编码压缩格式。
2.音频编码压缩格式
HE-AAC/AAC-LC,stereo或者是MP3(MPEG-1 Audio Layer 3),stereo。
视频流播放技术要求
1.视频流时长超过十分钟或者视频流5分钟内数据流量超过5MB需要强制使用Http Live Stream技术方案
2.如果应用在无限蜂窝网络中使用Http Live Stream,至少需要提供一个在64kbps或者更低带宽下的视频数据流
3.不满足要求的软件将被下架
维基百科把HLS定义为苹果公司实现的一种完全基于HTTP的媒体流协议。要理解HLS,先看看HLS的典型组网结构。在苹果公司的技术文档中描述HLS组网由三部分组成,后台服务器端Server、分发模块Distribution、一级客户端Client。
后端Server生成用于最终用于传输的媒体数据,原始的语音视频数据(例如H.264的视频和AAC的音频)被打包成MPEG-2的传输数据流(MPEG transport stream,由于定义在MPEG-2规范的第一部分,又叫做MPEG-2 transport stream)。MPEG-2的传输数据流被分割成一块一块,例如,每一块存储在一个后缀为ts的媒体文件中。
与此同时,生成一个对应的文件后缀为m3u8的索引文件。
媒体流索引文件与对应的一系列媒体文件存放在分发模块Distribution 中,分发模块Distribution是一个标准的Web 服务器,通过标准的HTTP访问,客户端Client可以获取到媒体流的索引文件,并通过索引文件逐个获取媒体流的分块ts文件。客户端Client据此可以拼接出完整的视频流,显示给最终的用户。相对于其他移动平台上使用的基于UDP协议的RTSP媒体数据流播放方案,分发模块Distribution仅仅使用HTTP连接传输所有的数据,使其多媒体数据流能够最广泛的穿越各种边缘网络的网关、路由器、网络代理设备。此外,分发模块Distribution可以和各种数字内容分发的前端机器合作,提供缓存、媒体数据的分布式存储等。