本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Kinesis Video Streams API 和制作人库
Kinesis Video Streams 提供 API,供您创建和管理直播以及在流中读取或写入媒体数据。除了管理功能外,Kinesis Video Streams 控制台还支持直播和video-on-demand播放。Kinesis Video Streams 还提供了一组制作者库,您可以在应用程序代码中使用这些库从媒体源提取数据并上传到 Kinesis 视频流。
Kinesis Video Streams
Kinesis Video Streams 提供用于创建和管理 Kinesis Video Streams 的 API。它还提供了用于在流中读取和写入媒体数据的 API,如下所示:
-
制作者 API — Kinesis Video Streams 提供了一个将媒体数据写入 Kinesis 视频流的
PutMedia
API。在PutMedia
请求中,创建者将发送一个媒体片段流。片段 是一系列独立帧。属于某个片段的帧不依赖其他片段中的任何帧。有关更多信息,请参阅PutMedia:片段到达时,Kinesis Video Streams 会按递增顺序分配一个唯一的片段编号。它还将每个片段的制作者端和服务器端时间戳存储为 Kinesis Video Streams 特定的元数据。
-
消费者 API — 消费者可以使用以下 API 从流中获取数据:
-
GetMedia
- 在使用此 API 时,使用者必须标识正在启动的片段。之后,API 将按照将片段添加到流中的顺序返回片段 (按照片段号的递增顺序)。片段中的媒体数据将打包成一个结构化格式,例如 Matroska (MKV)。有关更多信息,请参阅GetMedia: 注意
GetMedia
了解片段所在位置 (存档到数据存储中或实时可用)。例如,如果GetMedia
确定已存档正在启动的片段,则它会开始从数据存储返回片段。当它必须返回尚未存档的新片段时,GetMedia
切换到从内存流缓冲区读取片段。这是一个持续使用者的示例,它按照流提取片段的顺序处理片段。
GetMedia
使视频处理应用程序能够先失败或落后,然后保持同步,而无需执行其他操作。通过使用GetMedia
,应用程序可以处理已存档到数据存储中的数据,并且在应用程序保持同步时,GetMedia
仍会在其到达时实时提供媒体数据。 -
GetMediaFromFragmentList
(和ListFragments
) - 批处理应用程序被视为离线使用者。离线使用者可能选择通过将ListFragments
和GetMediaFromFragmentList
API 组合使用,来明确提取视频的特定媒体片段或范围。ListFragments
和GetMediaFromFragmentList
使应用程序能够标识特定时间范围或片段范围的视频片段,然后按顺序或并行提取这些片段以进行处理。此方法适用于MapReduce
应用程序套件,该套件必须并行快速处理大量数据。例如,假设使用者需要处理一天的视频片段。使用者将执行以下操作:
-
通过调用
ListFragments
API 并指定时间范围以获取片段列表,从而选择所需的片段集合。API 将返回指定时间范围的所有片段中的元数据。元数据提供诸如片段编号、生产者端和服务器端时间戳等信息。
-
获取片段元数据列表并按任意顺序检索片段。例如,要处理当天的所有片段,使用者可以选择将列表拆分为子列表,让工作人员(例如,多个 Amazon EC2 实例)使用parallel 提取碎片,然后parallel 处理它们。
GetMediaFromFragmentList
-
-
下图显示了这些 API 调用期间片段和数据块的数据流。

当创建者发送 PutMedia
请求时,它会在负载中发送媒体元数据,然后发送一系列媒体数据片段。收到数据后,Kinesis Video Streams 将传入的媒体数据存储为 Kinesis Video Streams 区块。每个数据块均包含以下内容:
-
媒体元数据的副本
-
片段
-
Kinesis Video Streams 特定的元数据;例如,片段编号以及服务器端和制作者端的时间戳
当消费者请求媒体元数据时,Kinesis Video Streams 会返回一个区块流,从您在请求中指定的片段编号开始。
如果您为流启用数据持久性,则在收到流中的片段后,Kinesis Video Streams 还会将该片段的副本保存到数据存储中。
制作者库
创建 Kinesis 视频流后,即可开始向该视频流发送数据。在应用程序代码中,您可以使用这些库从媒体源提取数据并上传到 Kinesis 视频流。有关可用创建者库的更多信息,请参阅 Kinesis 视频直播制作人库。