更新
看起来苹果公司提出了一项IETF草案,并且一些人已经开始开发分段器:
HTTP Live Streaming - draft-pantos-http-live-streaming-01
http://tools.ietf.org/id/draft-pantos-http-live-streaming-01.txt
使用FFMpeg和开源分段器进行iPhone HTTP流媒体传输
http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/
看起来HTTP服务器只是一个简单的HTTP服务器。浏览Akamai提供的示例网站,我得到了足够的信息开始静态内容流媒体传输。
http://iphone.akamai.com/
白皮书(http://www.akamai.com/dl/akamai/iphone_wp.pdf)提供有关传输流编码的信息,因此.ts流很容易理解。
编码器(或单独的分段器
进程)将以MPEG-2 TS格式(.ts)的一系列小内容段生成H.264/AAC
内容。还有一个M3U8索引文件
引用这些片段;对于实时内容,M3U8是
不断更新以反映最新内容。
H.264编码应该是单通道
基本配置文件,禁用帧重新排序。
建议每5秒进行关键帧,
最好是所选段长的偶数
除数。
该网站提供了一个M3U8文件,它只是一个M3U播放列表,但采用UTF-8字符编码格式。
然后,该文件链接到每个比特率的M3U8文件。我假设它们必须在相同的位置切割(例如每2或10秒),以便切换是无缝的。它似乎完全由客户端驱动 - 客户端决定如何测量带宽以及选择哪个版本。
主文件的内容为:
hi/prog_index.m3u8
med/prog_index.m3u8
lo/prog_index.m3u8
然后其他文件分别是:
hi/prog_index.m3u8
fileSequence0.ts
fileSequence1.ts
fileSequence2.ts
fileSequence3.ts
fileSequence4.ts
med/prog_index.m3u8
fileSequence0.ts
fileSequence1.ts
fileSequence2.ts
fileSequence3.ts
fileSequence4.ts
lo/prog_index.m3u8
fileSequence0.ts
fileSequence1.ts
fileSequence2.ts
fileSequence3.ts
fileSequence4.ts
这个适用于HTML 5视频标签:
<video width="640" height="480">
<source src="content1/content1.m3u8" />
</video>
还有许多未解答的问题,但这应该足以开始了。