2024年4月25日发(作者:)

Copy Right All Right By kyelup.

Mail: t@

HTTP-Live-Streaming-Architecture

(原文地址)

/library/ios/#documentation/networkinginternet/conceptual/streaming

mediaguide/Introduction/

一般来说,HTTP Live Stream 是由三部分组成的:服务组件部分,

视频分布存储组件部分,客户端软件部分。

服务组件部分(Server):

这个一般是用来进行视频数据的录入以

及编码过程,把他们按照一个统一的数据格式进行编码用来传递以及

为视频存储组件部分做准备。

视频存储分布组件部分(Distribution)

:这个部分一般是有一个

标准的web服务器构成的,他们用来相应客户端的请求以及传递已经

处理好的相应请求多媒体信息。对大规模的分布,edge网络或其他内

容分发网络也可以使用。

客户端软件部分(Client)

:客户端软件负责确定适当的媒体来请

求,下载这些资源,然后重新组装它们,这样的媒体可以呈现给用户一

个连续的流。客户端软件包含在iOS 3.0和以后和电脑安装了Safari 4.0

或更高。

在一个典型的配置、硬件编码器需要音像输入,将其作为h .264视频和AAC音频,并将这些内容作为MPEG-2

数据流传输,然后由软件流分段程序分解成一系列简短的媒体文件,这些文件放置在web服务器。这个分段

程序还创建并维护索引文件包含一个媒体文件的列表。索引文件的URL用来发布到web服务器上。客户端软

件读取索引,请求媒体文件,并将其显示出来,并且用户感觉不到任何的停顿或段之间的差距。

Copy Right All Right By kyelup.

Mail: t@

如下是一个大致的架构图

其中输入源可以非为直播输入源或者已经准备好的输入源。通常我们需要把他们数字化编码为

MPEG-4(H.264视频,AAC音频)然后再包装成MPEG-2的格式通过商用软件进行传递。MPEG-2的编码流然后

会被切割成许多个小的片段(.ts文件)保存起来,这个过程我们通常是使用苹果的Stream Segmenter小

工具来完成的.

其中需要注意的就是,当如果仅仅是音频流的话只支持AAC类型的并且是ADTS打头的文件,或者是MP3文

件。

苹果的这个分段程序(Stream Segmenter)还创建一个索引文件。索引的文件中包含了一系列媒体文件。

索引文件还包含元数据。索引文件是一个".M3U8"播放列表。索引文件的URL是由客户机访问,然后请求索

引文件在序列。

服务组件部分(Server)

这个部分需要一个媒体编码器,可以采用商用软件.然后再把编码之后的文件进行一个切割保

存。其中切割保存的这个部分可以采用苹果的软件media Stream Segmenter来完成。

媒体编码器

媒体编码器通过一个外置设备(摄像机等)来获取一个数据信号,然后再进行一个编码,封