IVS 服务器端合成入门
本文档将引导您完成 IVS 服务器端合成入门所涉及的步骤。
先决条件
要使用服务器端合成,您必须有一个包含活跃发布者的舞台,并使用 IVS 频道和/或 S3 存储桶作为合成目标。下面,我们将介绍一种可能的工作流程,它使用 EventBridge 事件来开始合成,当参与者发布时,该合成将舞台广播到 IVS 频道。或者,您可以根据自己的应用程序逻辑开始和停止合成。请参阅合成录制以获得另一个示例,它展示了如何使用服务器端合成将舞台直接录制到 S3 存储桶。
-
创建 IVS 频道。请参阅 Amazon IVS 低延迟直播功能入门。
-
为每个发布者创建 IVS 舞台和参与者令牌。
-
当您收到参与者发布的 EventBridge 事件时,使用所需的布局配置调用 StartComposition。
-
等待几秒钟,然后在频道回放中观看合成视图。
注意:发布者参与者在舞台上处于非活动状态 60 秒后,合成执行自动关闭。此时,合成终止,并转换到 STOPPED
状态。合成处于 STOPPED
状态几分钟后将自动删除。
CLI 说明
使用 Amazon CLI 是一个高级选项,需要先在计算机上下载并配置 CLI。有关详细信息,请参阅 Amazon 命令行界面用户指南。
现在,您可以使用 CLI 创建和管理资源。合成端点位于 ivs-realtime
命名空间下。
创建 EncoderConfiguration 资源
EncoderConfiguration 是一个对象,允许您自定义生成的视频的格式(高度、宽度、比特率和其他流式传输参数)。每次调用合成端点时,您都可以重复使用 EncoderConfiguration,如下一步中所述。
下面的命令创建 EncoderConfiguration 资源,用于配置服务器端视频合成参数,例如视频比特率、帧速率和分辨率:
aws ivs-realtime create-encoder-configuration --name "MyEncoderConfig" --video "bitrate=2500000,height=720,width=1280,framerate=30"
响应如下:
{ "encoderConfiguration": { "arn": "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/9W59OBY2M8s4", "name": "MyEncoderConfig", "tags": {}, "video": { "bitrate": 2500000, "framerate": 30, "height": 720, "width": 1280 } } }
开始合成
使用上面响应中提供的 EncoderConfiguration ARN,创建您的合成资源:
网格布局示例
aws ivs-realtime start-composition --stage-arn "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik" --destinations '[{"channel": {"channelArn": "arn:aws:ivs:us-east-1:927810967299:channel/DOlMW4dfMR8r", "encoderConfigurationArn": "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/9W59OBY2M8s4"}}]' --layout '{"grid":{"featuredParticipantAttribute":"isFeatured","videoFillMode":"COVER","gridGap":0}}'
PiP 布局示例
aws ivs-realtime start-composition --stage-arn "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik" --destinations '[{"channel": {"channelArn": "arn:aws:ivs:us-east-1:927810967299:channel/DOlMW4dfMR8r", "encoderConfigurationArn": "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/DEkQHWPVaOwO"}}]' --layout '{"pip":{"pipParticipantAttribute":"isPip","pipOffset":10,"pipPosition":"TOP_RIGHT"}}'
注意:您可以使用此工具--layout
配置。
响应将显示该合成使用 STARTING
状态创建。一旦合成开始发布合成,状态就会转换为 ACTIVE
。(您可以通过调用 ListCompositions 或 GetComposition 端点来查看状态。)
合成处于 ACTIVE
后,可以使用 ListCompositions 在 IVS 频道上看到 IVS 舞台的合成视图:
aws ivs-realtime list-compositions
响应如下:
{ "compositions": [ { "arn": "arn:aws:ivs:us-east-1:927810967299:composition/YVoaXkKdEdRP", "destinations": [ { "id": "bD9rRoN91fHU", "startTime": "2023-09-21T15:38:39+00:00", "state": "ACTIVE" } ], "stageArn": "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik", "startTime": "2023-09-21T15:38:37+00:00", "state": "ACTIVE", "tags": {} } ] }
注意:您需要让发布者参与者主动发布到舞台上,以使合成保持活动状态。有关更多信息,请参阅实时流式广播 SDK 指南的“发布和订阅”部分:Web、Android 和 iOS。您必须为每位参与者创建不同的舞台令牌。