一如苹果的强势作风,苹果对其旗下的iPhone、iPod、iPad、Apple TV各种设备上的视频数据播放有强制的技术限制。
1.必须使用H.264的编码压缩格式。
2.音频编码压缩格式
HE-AAC/AAC-LC,stereo或者是MP3(MPEG-1 Audio Layer 3),stereo。
其次,说说视频流播放技术要求
1.视频流时长超过十分钟或者视频流五分钟内数据流量超过5MB需要强制使用Http Live Stream技术方案。
2.如果应用在无线蜂窝网络(2g/3g等网络)中使用Http Live Stream,至少需要提供一个在64kbps或者更低带宽下的视频数据流(例如,提供一个版本只保留声音与静态图片)。
3.不满足要求的软件将被下架。
可以说,Http Live Stream技术(下文简称为HLS)是苹果视频播放方案的核心。
什么是HLS
HLS组网由三部分组成,后台服务器端Server 、分发模块Distribution 、以及客户端Client。
后端Server生成用于最终用于传输的媒体数据,
原始的语音视频数据(例如H.264的视频和AAC的音频)被打包成MPEG-2的传输数据流。
MPEG-2的传输数据流被分割成一块一块,
每一块存储在一个后缀为ts的媒体文件中。
此同生成一个对应的文件后缀为m3u8的索引文件。
媒体流索引文件与对应的一系列媒体文件存放在分发模块Distribution 中,
分发模块Distribution是一个标准的Web 服务器,
通过标准的HTTP访问,客户端Client可以获取到媒体流的索引文件,
并通过索引文件逐个获取媒体流的分块ts文件。
客户端Client据此可以拼接出完整的视频流,显示给最终的用户。
相对于其他移动平台上使用的基于UDP协议的RTSP媒体数据流播放方案,
分发模块Distribution仅仅使用HTTP连接传输所有的数据,
使其多媒体数据流能够最广泛的穿越各种边缘网络的网关、路由器、网络代理设备。
此外,分发模块Distribution可以和各种数字内容分发的前端机器合作,
提供缓存、媒体数据的分布式存储等。
索引文件的一个典型例子:
这里总结一下支持HLS的非PC客户端,
苹果公司所出的所有设备,包括iPhone、iPad、iPod、Apple TV均内置支持HLS,并且只支持HLS(不支持其他平台使用的RTSP媒体数据流)。
Google的Android 3.0以后的版本也支持HLS。
在网页中访问HLS视频数据流代码如下:
下面以苹果平台上的多媒体“实时”转码功能软件airplay video软件为实例,对HLS多媒体数据流进行抓包分析。
移动互联网上的终端只具有有限的多媒体编解码能力,其原因分析起来:
一来受限于平台的多媒体能力支持,
二来受限于版权授权的限制,
像PC电脑特别是国内的PC电脑上,几乎无限制的在系统上安装了各种编解码器,具有几乎是无限的视频编解码能力。
于是,苹果平台上有一类软件能完成下面的功能,
PC电脑上安装一个服务器,客户端运行在iPad/iPhone等移动互联网终端上,
运行在PC电脑上的模块负责把多媒体数据流“实时”转换成移动互联网终端能支持的码流,
Air Vedio/Air Play it就是这类应用。
这类应用受限与苹果平台只支持HLS,
势必也只能使用HLS方案。