

# 步骤 2：创建具有可选参与者录制功能的舞台
<a name="getting-started-create-stage"></a>

舞台是一个虚拟空间，参与者可以在其中实时交换视频。它是实时流式传输 API 的基础资源。您可以使用控制台或 CreateStage 操作创建舞台。

我们建议尽可能为每个逻辑会话创建一个新舞台，使用后将其删除，而不是保留旧舞台以备可能的重复使用。如果不清理过时资源（不可重复使用的旧舞台），您很可能会更快地达到最大舞台数量的限制。

您可以通过 Amazon IVS 控制台或 AWS CLI 创建一个舞台（带或不带单个参与者录制）。将在下面讨论舞台创建和录制。

## 单个参与者录制
<a name="getting-started-create-stage-ipr-overview"></a>

您可以选择为舞台启用单个参与者录制。如果启用了单个参与者录制到 S3 功能，则舞台的所有单个参与者广播都将录制并保存到您拥有的 Amazon S3 存储桶中。随后，录制可用于按需播放。

*该设置是一个高级选项。*默认情况下，在创建舞台时禁用录制。

在您设置舞台进行录制之前，必须创建*存储配置*。这是一个资源，它指定存储舞台录制流的 Amazon S3 位置。您可以使用控制台或 CLI 来创建和管理存储配置；这两个过程如下所示。创建存储配置后，您可以在创建舞台时（如下所述）或之后，通过更新现有舞台将其与舞台关联。（在 API 中，请参阅 [CreateStage](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_CreateStage.html) 和 [UpdateStage](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_UpdateStage.html)。） 您可以将多个舞台与同一个存储配置相关联。您可以删除不再与任何舞台关联的存储配置。

请注意以下限制：
+ 您必须拥有 S3 存储桶。也就是说，设置要录制舞台的账户必须拥有存储录制的 S3 存储桶。
+ 舞台、存储配置和 S3 位置必须位于同一 AWS 区域。如果您在其他区域创建舞台并想要录制它们，则还必须在这些区域中设置存储配置和 S3 存储桶。

录制到您的 S3 存储桶需要使用您的亚马逊云科技凭证进行授权。要向 IVS 提供所需的访问权限，在创建录制配置时会自动创建 AWS IAM [服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) (SLR)：SLR 仅限于针对特定存储桶为 IVS 提供写入权限。

请注意，流传输位置与 AWS 之间或 AWS 内部的网络问题可能会在录制流时导致一些数据丢失。在这些情况下，Amazon IVS 将实时流优先于录制。为了实现冗余，请通过流传输工具在本地录制。

有关详细信息（包括如何在录制的文件上设置后期处理或 VOD 播放），请参阅[单个参与者录制](rt-individual-participant-recording.md)。

### 如何禁用录制
<a name="getting-started-disable-recording"></a>

要在现有舞台上禁用 Amazon S3 录制，请执行以下操作：
+ 控制台 — 在相关舞台的详细信息页面上，在**录制单个参与者**流部分，在**自动录制到 S3** 下关闭**启用自动录制**，然后选择**保存更改**。这将删除存储配置与舞台的关联；该舞台上的流将不再被录制。
+ CLI – 运行 `update-stage` 命令并将录制配置 ARN 作为空字符串传入：

  ```
  aws ivs-realtime update-stage --arn arn:aws:ivs:us-west-2:123456789012:stage/abcdABCDefgh --auto-participant-recording-configuration storageConfigurationArn=""
  ```

  这将返回一个舞台对象，其中包含 `storageConfigurationArn` 的空字符串，表示录制已禁用。

## 创建 IVS 舞台的控制台说明
<a name="getting-started-create-stage-console"></a>

1. 打开 [Amazon IVS 控制台](https://console.aws.amazon.com/ivs)。

   （您还可通过 [Amazon 管理控制台](https://console.aws.amazon.com/)访问 Amazon IVS 控制台。）

1. 请在左侧导航窗格中选择**舞台**，然后选择**创建舞台**。此时将显示**创建舞台**窗口。  
![\[使用“创建舞台”窗口，创建新舞台并为该舞台创建参与者令牌。\]](http://docs.aws.amazon.com/zh_cn/ivs/latest/RealTimeUserGuide/images/Create_Stage_Console_IPR.png)

1. （可选）输入**舞台名称**。

1. 如果想要启用单个参与者录制，请完成[设置自动将单个参与者录制到 Amazon S3（可选）](#getting-started-create-stage-ipr)中的步骤。

1. 请选择**创建舞台**以创建舞台。此时将显示新舞台的舞台详细信息页面。

### 设置自动将单个参与者录制到 Amazon S3（可选）
<a name="getting-started-create-stage-ipr"></a>

请按照下面的步骤在创建舞台时启用单个参与者录制：

1. 在**创建舞台**页面的**录制单个参与者**下，启用**启用自动录制**。将显示其他字段，可选择**录制的媒体类型**、选择现有**存储配置**或创建新的存储配置，以及选择是否按一定间隔录制缩略图。  
![\[使用“录制单个参与者”对话框为舞台配置单个参与者录制。\]](http://docs.aws.amazon.com/zh_cn/ivs/latest/RealTimeUserGuide/images/Create_Stage_Console_enable_IPR.png)

1. 选择要录制的媒体类型。

1. 选择**创建存储配置**。此时会打开一个新窗口，其中选项用于创建 Amazon S3 桶并将其附加到新的录制配置。  
![\[使用“创建存储配置”窗口创建舞台的新存储配置。\]](http://docs.aws.amazon.com/zh_cn/ivs/latest/RealTimeUserGuide/images/Create_Storage_Configuration_IPR.png)

1. 填写以下字段：

   1. （可选）输入**存储配置名称**。

   1. 输入**存储桶名称**。

1. 选择**创建存储配置**，以创建具有唯一 ARN 的新存储配置资源。创建录制配置通常在数秒钟内完成，但最多可能需要 20 秒钟。存储配置创建完成后，您将返回到**创建舞台**窗口。在那里，**录制单个参与者**区域显示您的新**存储配置**和您创建的 S3 存储桶（**存储**）。  
![\[使用 IVS 控制台创建舞台：创建新的存储配置。\]](http://docs.aws.amazon.com/zh_cn/ivs/latest/RealTimeUserGuide/images/Create_Stage_Console_Storage_Configuration.png)

1. 您可以选择启用其他非默认选项，例如录制参与者副本、合并单个参与者录制以及缩略图录制。  
![\[使用 IVS 控制台创建舞台：启用缩略图录制和 IPR 拼接等高级选项。\]](http://docs.aws.amazon.com/zh_cn/ivs/latest/RealTimeUserGuide/images/Create_Stage_Console_IPR_Stitching.png)

## 创建 IVS 舞台的 CLI 说明
<a name="getting-started-create-stage-cli"></a>

要安装 Amazon CLI，请参阅 [Install or update to the latest version of the <shared id="AWS"/> CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

现在，您可以按照以下两个过程之一使用 CLI 创建和管理资源，具体取决于您是否要创建启用或不启用单个参与者录制的舞台。

### 创建没有单个参与者录制的舞台
<a name="getting-started-create-stage-cli-without-ipr"></a>

舞台 API 在 ivs-realtime 命名空间下。例如，要创建舞台，以执行以下操作：

```
aws ivs-realtime create-stage --name "test-stage"
```

响应如下：

```
{
   "stage": {
      "arn": "arn:aws:ivs:us-west-2:376666121854:stage/VSWjvX5XOkU3",
      "name": "test-stage"
   }
}
```

### 创建带有单个参与者录制的舞台
<a name="getting-started-create-stage-cli-with-ipr"></a>

要创建启用了单个参与者录制的舞台，请执行下面的操作：

```
aws ivs-realtime create-stage --name "test-stage-participant-recording" --auto-participant-recording-configuration storageConfigurationArn=arn:aws:ivs:us-west-2:123456789012:storage-configuration/LKZ6QR7r55c2,mediaTypes=AUDIO_VIDEO
```

或者，传递 `thumbnailConfiguration` 参数来手动设置缩略图存储和录制模式，以及缩略图间隔秒数：

```
aws ivs-realtime create-stage --name "test-stage-participant-recording" --auto-participant-recording-configuration storageConfigurationArn=arn:aws:ivs:us-west-2:123456789012:storage-configuration/LKZ6QR7r55c2,mediaTypes=AUDIO_VIDEO,thumbnailConfiguration="{targetIntervalSeconds=10,storage=[SEQUENTIAL,LATEST],recordingMode=INTERVAL}"
```

或者，传递 `recordingReconnectWindowSeconds` 参数以启用合并片段化的单个参与者录制：

```
aws ivs-realtime create-stage --name "test-stage-participant-recording" --auto-participant-recording-configuration "storageConfigurationArn=arn:aws:ivs:us-west-2:123456789012:storage-configuration/LKZ6QR7r55c2,mediaTypes=AUDIO_VIDEO,thumbnailConfiguration="{targetIntervalSeconds=10,storage=[SEQUENTIAL,LATEST],recordingMode=INTERVAL}",recordingReconnectWindowSeconds=60"
```

响应如下：

```
{
   "stage": {
      "arn": "arn:aws:ivs:us-west-2:123456789012:stage/VSWjvX5XOkU3",
      "autoParticipantRecordingConfiguration": {
         "hlsConfiguration": {
             "targetSegmentDurationSeconds": 6
         },
         "mediaTypes": [
            "AUDIO_VIDEO"
         ],
         "recordingReconnectWindowSeconds": 60,
         "recordParticipantReplicas": true,
         "storageConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:storage-configuration/LKZ6QR7r55c2",
         "thumbnailConfiguration": {
            "recordingMode": "INTERVAL",
            "storage": [
               "SEQUENTIAL",
               "LATEST"
            ],
            "targetIntervalSeconds": 10
         }
      },
      "endpoints": {
         "events": "<events-endpoint>",
         "rtmp": "<rtmp-endpoint>",
         "rtmps": "<rtmps-endpoint>",
         "whip": "<whip-endpoint>"
      },
      "name": "test-stage-participant-recording"
   }
}
```