開始使用 IVS 伺服器端合成 - Amazon IVS

開始使用 IVS 伺服器端合成

本文件將帶您了解開始使用 IVS 伺服器端合成的相關步驟。

必要條件

若要使用伺服器端合成,您必須具有包含作用中發布者的階段,並使用 IVS 頻道和/或 S3 儲存貯體作為合成目的地。下面,我們描述了一種可能的工作流程,該工作流程使用 EventBridge 事件啟動合成,該合成會在參與者發布時將階段廣播到 IVS 頻道。您也可以根據自己的應用程式邏輯啟動和停止合成。請參閱複合錄製中的另一個範例,其中展示了如何使用伺服器端合成將階段直接錄製到 S3 儲存貯體。

  1. 建立一個 IVS 頻道。請參閱開始使用 Amazon IVS 低延遲串流功能

  2. 為每個發布者建立 IVS 階段和參與者權杖。

  3. 建立一個 EncoderConfiguration

  4. 加入並發布到階段。(請參閱 Web 版、Android 版和 iOS 版即時串流廣播 SDK 指南中的「發布與訂閱」章節。)

  5. 收到「參與者已發布」EventBridge 事件後,請使用所需的版面配置組態呼叫 StartComposition

  6. 等待幾秒鐘,然後在頻道播放中查看複合檢視。

當參與者發布時,使用 EventBridge 事件啟動合成的伺服器端合成工作流程。

注意:在階段上的發布者參與者閒置 60 秒後,合成會執行自動關閉。此時,合成會終止並轉換為 STOPPED 狀態。合成會在保持 STOPPED 狀態幾分鐘後自動刪除。

CLI 說明

使用 AWS CLI 是進階選項,需要您先在機器上下載並設定 CLI。如需詳細資訊,請參閱《AWS 命令列介面使用者指南》。

您目前可以使用 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 狀態,IVS 階段的複合檢視就可以在 IVS 頻道上出現,使用 ListCompositions:

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": {} } ] }

注意:您必須讓發布者參與者主動發布至階段,才能讓合成保持作用中狀態。如需詳細資訊,請參閱 Web 版、Android 版和 iOS 版即時串流廣播 SDK 指南中的「發布與訂閱」章節。您必須為每個參與者建立不同的階段權杖。