開始使用 IVS 伺服器端合成
本文件將帶您了解開始使用 IVS 伺服器端合成的相關步驟。
必要條件
若要使用伺服器端合成,您必須具有包含作用中發布者的階段,並使用 IVS 頻道和/或 S3 儲存貯體作為合成目的地。下面,我們描述了一種可能的工作流程,該工作流程使用 EventBridge 事件啟動合成,該合成會在參與者發布時將階段廣播到 IVS 頻道。您也可以根據自己的應用程式邏輯啟動和停止合成。請參閱複合錄製中的另一個範例,其中展示了如何使用伺服器端合成將階段直接錄製到 S3 儲存貯體。
-
建立一個 IVS 頻道。請參閱開始使用 Amazon IVS 低延遲串流功能。
-
為每個發布者建立 IVS 階段和參與者權杖。
-
建立一個 EncoderConfiguration。
-
加入並發布到階段。(請參閱 Web 版、Android 版和 iOS 版即時串流廣播 SDK 指南中的「發布與訂閱」章節。)
-
收到「參與者已發布」EventBridge 事件後,請使用所需的版面配置組態呼叫 StartComposition。
-
等待幾秒鐘,然後在頻道播放中查看複合檢視。
注意:在階段上的發布者參與者閒置 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 指南中的「發布與訂閱」章節。您必須為每個參與者建立不同的階段權杖。