创建 Amazon Chime SDK 媒体流管道 - Amazon Chime SDK

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建 Amazon Chime SDK 媒体流管道

chime 媒体流管道必须与 Amazon Chime SDK 会议属于同一个 AWS 账户。你可以通过调用 Amazon Chime SDK 媒体流管道来创建 CreateMediaStreamPipelineAPI 并指定源和接收器。

下图显示 Amazon Chime SDK 媒体流管道的架构。图表中的数字对应于以下带编号的文本。

显示创建媒体流池的 API 调用的图表。

在图中:

  1. 您调用 CreateMediaStreamPipeline API。在请求中,指定流的来源和接收器。是否想要捕获单个音频和/或混合音频。请求中包含 KVS 池的 ARN。

    • 来源数组由 SourceTypeSourceArn 组成。您必须使用 ChimeSdkMeeting SourceTypeSourceArnChimeSdkMeeting 的 ARN。

    • 接收器数组由 SinkTypeSinkArnReservedStreamCapacityMediaStreamType 组成。我们仅支持 KinesisVideoStreamPoolSinkTypeSinkArnKinesisVideoStreamPool 的 ARN。MediaStreamType 控制流式传输到接收器的媒体类型,MixedAudioIndividualAudioReservedStreamCapacity 设置为 KinesisVideoStreamPoolMediaStreamType 分配的流数量。

      • 如果要同时流式传输 IndividualAudioMixedAudio,则在 Sinks 数组中创建两个接收器对象,一个用于 IndividualAudio,另一个用于 MixedAudioSinkArnKinesisVideoStreamPool 的 ARN)可能因每个接收器的不同而有所不同。

      • 要仅流式传输单个音频或混合音频,创建一个包含所需 MediaStreamType 的接收器对象。

    • 注意以下几点:

      • 调用时 CreateMediaStreamPipeline带有 KinesisVideoStreamPool a SinkType s 的 API SinkARN 必须属于CreateMediaStreamPipeline正在调用的控制平面区域。

        例如,如果您在 us-east-1 中创建媒体流管道,则必须使用 us-east-1 中的 KinesisVideoStreamPool

      • ReservedStreamCapacity 应在您指定 MixedAudio MediaStreamType 时为 1,并且在指定 IndividualAudio MediaStreamType 时介于 1-10 之间。

  2. 媒体管道数据平面调用 KVS PutMediaAPI 将单个音频存储在属于您指定的 KVS 池的 KVS 流中。

  3. 媒体管道数据面板调用 KVS PutMedia API 将混合音频存储在属于您指定 KVS 池的流中。

注意

拨打完电话后 CreateMediaStreamPipelineAPI,生成器可以使用媒体管道事件或调用 GetMediaPipeline用于确定管道状态是否为的 API InProgress

管道状态达到 InProgress 后,媒体(IndividualAudioMixedAudio 的任意组合)就会流式传输到 KVS。

对于IndividualAudio直播类型,与会者 IDs 与从中分配的 KVS 直播之间存在 1:1 映射。KinesisVideoStreamPool此映射适用于媒体管道的整个生命周期。

要知道哪个 KVS 直播映射到出席者 ID 或为其分配了哪个 KVS 直播 MixedAudio,请使用以下方法之一:

  • 使用事件总线通知。每条通知都提供诸如与会者 IDs 以及直播与会者音频的 KVS ARN 之类的信息。当 IndividualAudioMixedAudio 流会话开始时,我们会发送一个 chime:MediaPipelineKinesisVideoStreamStart 事件。当与会者离开调用(针对 IndividualAudio)或会议结束时,流会话就会结束。

  • 使用 Kinesis Video Streams 随每个片段发送的持久性元数据。元数据包含与事件总线发送的内容相似的信息。生成器需要KinesisVideoStreamPool通过在中指定池名称作为前缀来解析的所有流 ListStreams使用此解决方案的 Kinesis Video Streams API。

当会议被删除时,媒体流管道就会终止,或者 DeleteMediaPipeline为该媒体流管道调用 API。此外,还会发送事件总线通知以指示媒体管道终止。