步骤 2:创建具有可选参与者录制功能的舞台 - Amazon IVS

步骤 2:创建具有可选参与者录制功能的舞台

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

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

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

单个参与者录制

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

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

在您设置舞台进行录制之前,必须创建存储配置。这是一个资源,它指定存储舞台录制流的 Amazon S3 位置。您可以使用控制台或 CLI 来创建和管理存储配置;这两个过程如下所示。创建存储配置后,您可以在创建舞台时(如下所述)或之后,通过更新现有舞台将其与舞台关联。(在 API 中,请参阅 CreateStageUpdateStage。) 您可以将多个舞台与同一个存储配置相关联。您可以删除不再与任何舞台关联的存储配置。

请注意以下限制:

  • 您必须拥有 S3 存储桶。也就是说,设置要录制舞台的账户必须拥有存储录制的 S3 存储桶。

  • 舞台、存储配置和 S3 位置必须位于同一 AWS 区域。如果您在其他区域创建舞台并想要录制它们,则还必须在这些区域中设置存储配置和 S3 存储桶。

录制到您的 S3 存储桶需要使用您的亚马逊云科技凭证进行授权。要向 IVS 提供所需的访问权限,在创建录制配置时会自动创建 AWS IAM 服务相关角色 (SLR):SLR 仅限于针对特定存储桶为 IVS 提供写入权限。

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

有关详细信息(包括如何在录制的文件上设置后期处理或 VOD 播放),请参阅单个参与者录制

如何禁用录制

要在现有舞台上禁用 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 舞台的控制台说明

  1. 打开 Amazon IVS 控制台

    (您还可通过 Amazon 管理控制台访问 Amazon IVS 控制台。)

  2. 请在左侧导航窗格中选择舞台,然后选择创建舞台。此时将显示创建舞台窗口。

    使用“创建舞台”窗口,创建新舞台并为该舞台创建参与者令牌。
  3. (可选)输入舞台名称

  4. 如果想要启用单个参与者录制,请完成设置自动将单个参与者录制到 Amazon S3(可选)中的步骤。

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

设置自动将单个参与者录制到 Amazon S3(可选)

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

  1. 创建舞台页面的录制单个参与者下,启用启用自动录制。将显示其他字段,可选择录制的媒体类型、选择现有存储配置或创建新的存储配置,以及选择是否按一定间隔录制缩略图。

    使用“录制单个参与者”对话框为舞台配置单个参与者录制。
  2. 选择要录制的媒体类型。

  3. 选择创建存储配置。此时会打开一个新窗口,其中选项用于创建 Amazon S3 桶并将其附加到新的录制配置。

    使用“创建存储配置”窗口创建舞台的新存储配置。
  4. 填写以下字段:

    1. (可选)输入存储配置名称

    2. 输入存储桶名称

  5. 选择创建存储配置,以创建具有唯一 ARN 的新存储配置资源。创建录制配置通常在数秒钟内完成,但最多可能需要 20 秒钟。存储配置创建完成后,您将返回到创建舞台窗口。在那里,录制单个参与者区域显示您的新存储配置和您创建的 S3 存储桶(存储)。

    使用 IVS 控制台创建舞台:创建新的存储配置。
  6. 您可以选择启用其他非默认选项,例如录制参与者副本、合并单个参与者录制以及缩略图录制。

    使用 IVS 控制台创建舞台:启用缩略图录制和 IPR 拼接等高级选项。

创建 IVS 舞台的 CLI 说明

要安装 Amazon CLI,请参阅 Install or update to the latest version of the <shared id="AWS"/> CLI

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

创建没有单个参与者录制的舞台

舞台 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" } }

创建带有单个参与者录制的舞台

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

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" } }