本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建 Amazon Chime SDK 媒体流管道
chime 媒体流管道必须与 Amazon Chime SDK 会议属于同一个 AWS 账户。你可以通过调用 Amazon Chime SDK 媒体流管道来创建 CreateMediaStreamPipelineAPI 并指定源和接收器。
下图显示 Amazon Chime SDK 媒体流管道的架构。图表中的数字对应于以下带编号的文本。

在图中:
-
您调用
CreateMediaStreamPipeline
API。在请求中,指定流的来源和接收器。是否想要捕获单个音频和/或混合音频。请求中包含 KVS 池的 ARN。-
来源数组由
SourceType
和SourceArn
组成。您必须使用ChimeSdkMeeting SourceType
。SourceArn
是ChimeSdkMeeting
的 ARN。 -
接收器数组由
SinkType
、SinkArn
、ReservedStreamCapacity
和MediaStreamType
组成。我们仅支持KinesisVideoStreamPoolSinkType
。SinkArn
是KinesisVideoStreamPool
的 ARN。MediaStreamType
控制流式传输到接收器的媒体类型,MixedAudio
或IndividualAudio
。ReservedStreamCapacity
设置为KinesisVideoStreamPool
的MediaStreamType
分配的流数量。-
如果要同时流式传输
IndividualAudio
和MixedAudio
,则在Sinks
数组中创建两个接收器对象,一个用于IndividualAudio
,另一个用于MixedAudio
。SinkArn
(KinesisVideoStreamPool
的 ARN)可能因每个接收器的不同而有所不同。 -
要仅流式传输单个音频或混合音频,创建一个包含所需
MediaStreamType
的接收器对象。
-
-
注意以下几点:
-
调用时 CreateMediaStreamPipeline带有
KinesisVideoStreamPool
aSinkType
s 的 APISinkARN
必须属于CreateMediaStreamPipeline
正在调用的控制平面区域。例如,如果您在
us-east-1
中创建媒体流管道,则必须使用us-east-1
中的KinesisVideoStreamPool
。 -
ReservedStreamCapacity
应在您指定MixedAudio
MediaStreamType
时为1
,并且在指定IndividualAudio
MediaStreamType
时介于1-10
之间。
-
-
-
媒体管道数据平面调用 KVS PutMediaAPI 将单个音频存储在属于您指定的 KVS 池的 KVS 流中。
-
媒体管道数据面板调用 KVS
PutMedia
API 将混合音频存储在属于您指定 KVS 池的流中。
注意
拨打完电话后 CreateMediaStreamPipelineAPI,生成器可以使用媒体管道事件或调用 GetMediaPipeline用于确定管道状态是否为的 API InProgress
。
管道状态达到 InProgress
后,媒体(IndividualAudio
和 MixedAudio
的任意组合)就会流式传输到 KVS。
对于IndividualAudio
直播类型,与会者 IDs 与从中分配的 KVS 直播之间存在 1:1 映射。KinesisVideoStreamPool
此映射适用于媒体管道的整个生命周期。
要知道哪个 KVS 直播映射到出席者 ID 或为其分配了哪个 KVS 直播 MixedAudio,请使用以下方法之一:
-
使用事件总线通知。每条通知都提供诸如与会者 IDs 以及直播与会者音频的 KVS ARN 之类的信息。当
IndividualAudio
或MixedAudio
流会话开始时,我们会发送一个chime:MediaPipelineKinesisVideoStreamStart
事件。当与会者离开调用(针对IndividualAudio
)或会议结束时,流会话就会结束。 -
使用 Kinesis Video Streams 随每个片段发送的持久性元数据。元数据包含与事件总线发送的内容相似的信息。生成器需要
KinesisVideoStreamPool
通过在中指定池名称作为前缀来解析的所有流 ListStreams使用此解决方案的 Kinesis Video Streams API。
当会议被删除时,媒体流管道就会终止,或者 DeleteMediaPipeline为该媒体流管道调用 API。此外,还会发送事件总线通知以指示媒体管道终止。