

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

# 为 Amazon Chime SDK 会议创建媒体串联管道
<a name="create-concat-pipe"></a>

您可以使用媒体串联管道连接媒体捕获管道生成的构件（文件）。

媒体捕获管道通过对媒体流进行分块并将这些构件存储在 Amazon S3 存储桶中来捕获会议内容。媒体捕获管道会创建以下类型的构件：
+ 音频
+ 视频
+ 内容共享
+ 数据通道消息
+ 转录消息
+ 会议事件
+ 合成视频，即内容共享和以视频磁贴形式在网格中显示的多个视频流。

媒体串联管道允许您将每种类型的构件串联成一个文件，然后将这些较大的文件存储在 Amazon S3 存储桶中。无需等待媒体捕获事件结束即可创建媒体串联管道，但是只有在捕获管道停止时，串联管道才会开始串联。

**注意**  
媒体捕获管道、媒体连接管道和 Amazon S3 存储桶必须位于同一个账户中。 AWS 

**Topics**
+ [Amazon Chime SDK 媒体串联管道的架构](concat-architecture.md)
+ [构建 Amazon Chime 软件开发工具包媒体连接管道](create-concat-pipe-steps.md)
+ [了解 Amazon Chime SDK 串联管道的 Amazon S3 存储桶文件夹结构](concat-folder-structure.md)

# Amazon Chime SDK 媒体串联管道的架构
<a name="concat-architecture"></a>

下图显示媒体串联管道的架构。

![\[显示媒体串联管道架构的图表。\]](http://docs.aws.amazon.com/zh_cn/chime-sdk/latest/dg/images/concatenation-pipe-architecture-2.png)


在图中，接收 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) 请求后，媒体管道控制面板在媒体管道数据面板中启动媒体捕获管道。然后，数据面板每 5 秒钟将捕获的数据块推送到捕获桶。接收 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html) 请求后，媒体管道控制面板等待指定媒体捕获管道完成，再在媒体管道数据面板中启动媒体串联管道。然后，数据面板读取存储桶中捕获的数据块，并将串联的构件推送到串联存储桶。

# 构建 Amazon Chime 软件开发工具包媒体连接管道
<a name="create-concat-pipe-steps"></a>

您需要按照多步骤流程创建 Amazon Chime SDK 媒体串联管道。以下步骤描述了此过程。

1. 创建 Amazon S3 存储桶以用作媒体捕获管道的数据接收器，然后配置存储桶策略。有关为 Amazon S3 存储桶启用服务器端加密的信息，请参阅本指南中的[为 Amazon S3 存储桶启用服务器端加密](https://docs.aws.amazon.com/chime-sdk/latest/dg/sse-kms.html)。如果您已创建用于媒体捕获管道的 Amazon S3 存储桶，则必须将 `s3:GetObject` 和 `s3:ListBucket` 操作添加到该存储桶的策略中。`s3:ListBucket` 操作需要对存储桶本身的访问权限。其他操作需要存储桶中对象的访问权限。您必须使用两个不同的 Amazon 资源名称 (ARNs) 来指定存储桶级和对象级权限。

   以下示例显示了存储桶策略。根据需要复制并粘贴此示例。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "AWSChimeMediaCaptureBucketPolicy",
       "Statement": [
           {
               "Sid": "AWSChimeMediaCaptureBucketPolicy",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "mediapipelines.chime.amazonaws.com"
                   ]
               },
               "Action": [
                   "s3:PutObject",
                   "s3:PutObjectAcl",
                   "s3:GetObject",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::[Bucket-Name]/*",
                   "arn:aws:s3:::[Bucket-Name]"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "123456789012"
                   },
                   "ArnLike": {
                   "aws:SourceArn": "arn:aws:chime:*:123456789012:*"
                   }
               }
           }
       ]
   }
   ```

------

1.  创建 Amazon S3 存储桶以用作媒体串联管道的数据接收器，然后配置存储桶策略。有关为 Amazon S3 存储桶启用服务器端加密的信息，请参阅本指南中的[为 Amazon S3 存储桶启用服务器端加密](https://docs.aws.amazon.com/chime-sdk/latest/dg/sse-kms.html)。

   以下示例显示了该策略。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "AWSChimeMediaConcatenationBucketPolicy",
       "Statement": [
           {
               "Sid": " AWSChimeMediaConcatenationBucketPolicy ",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "mediapipelines.chime.amazonaws.com"
                   ]
               },
               "Action": [
                   "s3:PutObject",
                   "s3:PutObjectAcl",
                   "s3:GetObject",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::[Bucket-Name]/*",
                   "arn:aws:s3:::[Bucket-Name]"
               ],
               "Condition": {
                   "StringEquals": {
                   "aws:SourceAccount": "123456789012"
                   },
                   "ArnLike": {
                   "aws:SourceArn": "arn:aws:chime:*:123456789012:*"
                   }
               }
           }
       ]
   }
   ```

------
**注意**  
您可以将单个 Amazon S3 存储桶用于媒体捕获和媒体串联管道。但是，如果您这样做，则必须将 `s3:GetObject` 和 `s3:ListBucket` 的访问权限添加到步骤 2 中所示的媒体串联存储桶策略中。如果您不希望串联存储桶策略拥有这些权限，则为每个管道创建单独的存储桶。

1. 使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) API 创建媒体捕获管道。作为其中的一部分，获取管道的 ARN。有关获取 ARN 的信息，请参阅 [了解 Amazon Chime SDK 媒体管道创建](create-pipeline.md)。您将在下一个步骤中使用 ARN。

1. 使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html) API 创建串联管道。

   以下示例显示请求主体。该*Path*字段是可选的，默认为串联管道的 ID。
**注意**  
您必须使用最近 30 天内创建的 `MediaPipelineArn`。

   ```
   {
       "Sources": [
           {
               "Type": "MediaCapturePipeline",
               "MediaCapturePipelineSourceConfiguration": {
                   "MediaPipelineArn": "Media_Pipeline_Arn",  //must be <30 days old
                   "ChimeSdkMeetingConfiguration": {
                       "ArtifactsConfiguration": {
                           "Audio": {
                               "State": "Enabled"
                           },
                           "Video": {
                               "State": "Enabled | Disabled"
                           },
                           "Content": {
                               "State": "Enabled | Disabled"
                           },
                           "DataChannel": {
                               "State": "Enabled | Disabled"
                           },
                           "TranscriptionMessages": {
                               "State": "Enabled | Disabled"
                           },
                           "MeetingEvents": {
                               "State": "Enabled | Disabled"
                           },
                           "CompositedVideo": {
                               "State": "Enabled | Disabled"
                           }
                       }
                   }
               }
           }
       ],
       "Sinks": [
           {
               "Type": "S3Bucket",
               "S3BucketSinkConfiguration": {
                   "Destination": "arn:aws:s3:::[Bucket_Name]/[Path]"
               }
           }
       ]
   }
   ```

   每当捕获管道停止时，串联就会开始。串联管道在完成串联后停止。

# 了解 Amazon Chime SDK 串联管道的 Amazon S3 存储桶文件夹结构
<a name="concat-folder-structure"></a>

媒体串联管道的 Amazon S3 存储桶使用该文件夹结构：

```
S3 bucket path/
  audio
  video
  composited-video
  data-channel
  meeting-events
  transcription-messages
```

**注意**  
如果您在创建媒体管道时指定前缀，则文件夹的路径将变为*存储桶名称*/*前缀*。如果没有前缀，则路径将变为*存储桶名称*/*媒体管道 ID*。您可以在 `S3BucketSinkConfiguration` 对象的 `Destination` 字段中指定前缀。串联后的文件名由*媒体管道 ID*.mp4（媒体文件）和*媒体管道 ID*.txt（用于文本文件）组成。