서버 측 구성(실시간 스트리밍) - Amazon IVS

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

서버 측 구성(실시간 스트리밍)

서버 측 구성은 IVS 서버를 사용하여 모든 스테이지 참가자의 오디오와 비디오를 믹싱한 다음 이 믹스된 비디오를 IVS 채널(예: 더 많은 시청자에게 도달하기 위해) 또는 S3 버킷으로 보냅니다. 서버 측 구성은 스테이지의 홈 리전에서 IVS 컨트롤 플레인 엔드포인트를 통해 호출됩니다.

서버 측 구성을 사용하여 스테이지를 브로드캐스팅하거나 레코딩하면 많은 이점이 있으므로 효율적이고 안정적인 클라우드 기반 비디오 워크플로를 찾는 사용자에게 매력적인 선택입니다.

다음 다이어그램은 서버 측 구성의 작동 방식을 보여줍니다.

서버 측 구성을 사용하여 스테이지를 브로드캐스팅합니다.

이점

클라이언트 측 구성과 비교할 때 서버 측 구성은 다음과 같은 이점이 있습니다.

  • 클라이언트 부하 감소 - 서버 측 구성을 사용하면 오디오 및 비디오 소스를 처리하고 결합하는 부담이 개별 클라이언트 디바이스에서 서버 자체로 이동합니다. 서버 측 구성을 사용하면 클라이언트 디바이스에서 보기를 합성하고 IVS로 전송하는 데 클라이언트 디바이스의 CPU와 네트워크 리소스를 사용할 필요가 없습니다. 즉, 시청자는 디바이스에서 리소스를 많이 사용하는 작업을 처리하지 않고도 브로드캐스트를 시청할 수 있으므로 배터리 수명이 향상되고 시청 환경이 개선됩니다.

  • 일관된 품질 - 서버 측 구성을 통해 최종 스트림의 품질, 해상도 및 비트레이트를 정밀하게 제어할 수 있습니다. 이를 통해 개별 디바이스의 성능과 상관없이 모든 시청자에게 일관된 시청 경험을 보장합니다.

  • 복원력 - 구성 프로세스를 서버에서 중앙 집중화함으로써 브로드캐스트가 더욱 강력해집니다. 게시자 디바이스에 기술적 제한 사항이나 변동이 있더라도 서버는 적응하여 모든 대상에게 더 매끄러운 스트림을 제공할 수 있습니다.

  • 대역폭 효율성 - 서버가 구성을 처리하므로 스테이지 게시자는 비디오를 IVS로 브로드캐스트하는 데 추가 대역폭을 소비하지 않아도 됩니다.

그 대신 IVS 채널로 스테이지를 브로드캐스트하려면 구성 클라이언트 측에서 할 수 있습니다. IVS 저지연 스트리밍 사용 설명서의 IVS 스트림에서 다중 호스트 활성화를 참조하세요.

IVS API

서버 측 구성은 다음과 같은 주요 API 요소를 사용합니다.

  • EncoderConfiguration 객체를 사용하면 생성할 비디오의 형식(높이, 너비, 비트레이트 및 기타 스트리밍 파라미터)을 사용자 지정할 수 있습니다. StartComposition 엔드포인트를 호출할 때마다 EncoderConfiguration을 재사용할 수 있습니다.

  • 구성 엔드포인트는 비디오 구성을 추적하고 IVS 채널로 출력합니다.

  • StorageConfiguration은 구성을 레코드하는 S3 버킷을 추적합니다.

서버 측 구성을 사용하려면 StartComposition 엔드포인트를 호출할 때 EncoderConfiguration을 생성하고 이를 연결해야 합니다. 이 예제에서는 SquareVideo EncoderConfiguration이 두 개의 구성에 사용됩니다.

서버 측 구성은 두 가지 주요 API 요소를 사용합니다.

전체 내용은 IVS 실시간 스트리밍 API 참조를 참조하세요.

레이아웃

기본적으로 서버 측 구성 기능은 그리드 레이아웃을 사용하여 스테이지 참가자를 동일한 크기의 슬롯에 정렬합니다.

서버 측 구성 그리드 레이아웃입니다.

이 레이아웃은 고객이 추천 슬롯을 구성하고 호출할 수 있는 옵션을 제공합니다. 추천 슬롯은 메인 화면에 있으며, 다른 참가자들은 같은 크기의 슬롯으로 그 아래에 표시됩니다.

서버 측 구성 그리드 레이아웃 추천 슬롯입니다.

참고: 서버 측 구성에서 스테이지 게시자가 지원하는 최대 해상도는 1080p입니다. 게시자가 1080p 이상의 비디오를 전송하는 경우 게시자는 오디오 전용 참가자로 렌더링됩니다.

시작하기

필수 조건

서버 측 구성을 사용하려면 활성 게시자가 있는 스테이지가 있어야 하며 IVS 채널 및/또는 S3 버킷을 구성 대상으로 사용해야 합니다. 아래에서는 참가자가 게시할 때 EventBridge 이벤트를 사용하여 IVS 채널에 스테이지를 브로드캐스트하는 구성을 시작하는 한 가지 가능한 워크플로를 설명합니다. 그 대신 자체 앱 로직에 따라 구성을 시작하고 중지할 수 있습니다. 서버 측 구성을 사용하여 스테이지를 S3 버킷에 직접 레코드하는 방법을 보여주는 또 다른 예제는 복합 레코딩을 참조하세요.

  1. IVS 채널을 생성하세요. Amazon IVS 저지연 스트리밍 시작하기를 참조하세요.

  2. 각 게시자를 위한 IVS 스테이지와 참가자 토큰을 생성하세요.

  3. EncoderConfiguration을 생성하세요.

  4. 스테이지에 참여하고 스테이지에 게시하세요. (실시간 스트리밍 브로드캐스트 SDK 가이드의 "게시 및 구독" 섹션: , Android, iOS를 참조하세요.)

  5. 참가자가 게시한 EventBridge 이벤트를 받으면 StartComposition을 호출하세요.

  6. 몇 초간 기다린 후 채널 재생에서 합성된 보기를 확인하세요.

참가자가 게시할 때 EventBridge 이벤트를 사용하여 구성을 시작하는 서버 측 구성 워크플로입니다.

참고: 스테이지에 있는 게시자 참가자가 60초 동안 활동이 없으면 구성이 자동 종료됩니다. 이때 구성이 종료되고 STOPPED 상태로 전환합니다. STOPPED 상태로 몇 분 지나면 구성을 자동으로 삭제합니다.

CLI 지침

AWS CLI를 사용하는 것은 고급 옵션이며, 먼저 시스템에 CLI를 다운로드하고 구성해야 합니다. 자세한 내용은 AWS 명령줄 인터페이스 사용 설명서를 참조하세요.

이제 CLI를 사용하여 리소스를 생성하고 관리할 수 있습니다. 구성 엔드포인트는 ivs-realtime 네임스페이스 아래에 있습니다.

EncoderConfiguration 리소스 생성

EncoderConfiguration은 생성된 비디오의 형식(높이, 너비, 비트레이트 및 기타 스트리밍 파라미터)을 사용자 지정할 수 있는 객체입니다. 다음 단계에서 설명하는 대로 Composition 엔드포인트를 호출할 때마다 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"}}]'

응답은 구성이 STARTING 상태로 생성되었음을 보여줍니다. 구성이 구성을 게시하기 시작하면 상태가 ACTIVE로 전환됩니다. (ListCompositions 또는 GetComposition 엔드포인트를 호출하여 상태를 확인할 수 있습니다.)

구성이 ACTIVE가 되면 IVS 채널에서 ListCompositions를 사용하여 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 가이드의 "게시 및 구독" 섹션(, Android, iOS)을 참조하세요. 각 참가자에 대해 별도의 스테이지 토큰을 생성해야 합니다.

화면 공유 사용

고정 화면 공유 레이아웃을 사용하려면 아래 단계를 따르세요.

EncoderConfiguration 리소스 생성

아래 명령은 서버 측 구성 파라미터(비디오 비트레이트, 프레임 속도 및 해상도)를 구성하는 EncoderConfiguration 리소스를 생성합니다.

aws ivs-realtime create-encoder-configuration --name "test-ssc-with-screen-share" --video={bitrate=2000000,framerate=30,height=720,width=1280}

screen-share 속성이 있는 스테이지 참가자 토큰을 생성합니다. featured 슬롯 이름으로 screen-share를 지정할 것이므로 true 속성이 screen-share로 설정된 스테이지 토큰을 생성해야 합니다.

aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes screen-share=true

다음과 같이 응답합니다.

{ "participantToken": { "attributes": { "screen-share": "true" }, "expirationTime": "2023-08-04T05:26:11+00:00", "participantId": "E813MFklPWLF", "token": "eyJhbGciOiJLTVMiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE2OTExMjY3NzEsImlhdCI6MTY5MTA4MzU3MSwianRpIjoiRTgxM01Ga2xQV0xGIiwicmVzb3VyY2UiOiJhcm46YXdzOml2czp1cy1lYXN0LTE6OTI3ODEwOTY3Mjk5OnN0YWdlL3U5T2lFMjliVDdYcCIsInRvcGljIjoidTlPaUUyOWJUN1hwIiwiZXZlbnRzX3VybCI6IndzczovL3VzLWVhc3QtMS5ldmVudHMubGl2ZS12aWRlby5uZXQiLCJ3aGlwX3VybCI6Imh0dHBzOi8vYjJlYTVjMmZmMzU1Lmdsb2JhbC53aGlwLmxpdmUtdmlkZW8ubmV0IiwiYXR0cmlidXRlcyI6eyJzY3JlZW4tc2hhcmUiOiJ0cnVlIn0sImNhcGFiaWxpdGllcyI6eyJhbGxvd19wdWJsaXNoIjp0cnVlLCJhbGxvd19zdWJzY3JpYmUiOnRydWV9LCJ2ZXJzaW9uIjoiMC4zIn0.MGUCMFvMzv35O4yVzM9tIWZl7n3mmFQhleqsRSBx_G2qT2YUDlWSNg6H1vL7sAWQMeydSAIxAIvdfqt3Fh1MLiyelc9NnTjI5hL3YPKqDX6J3NDH1fksh8_5y1jztoPDy4yVA5OmtA" } }

구성 시작

화면 공유 기능을 사용하여 구성을 시작하려면 다음 명령을 사용합니다.

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 "grid={featuredParticipantAttribute=screen-share}"

다음과 같이 응답합니다.

{ "composition" : { "arn" : "arn:aws:ivs:us-east-1:927810967299:composition/B19tQcXRgtoz", "destinations" : [ { "configuration" : { "channel" : { "channelArn" : "arn:aws:ivs:us-east-1:927810967299:channel/DOlMW4dfMR8r", "encoderConfigurationArn" : "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/DEkQHWPVaOwO" }, "name" : "" }, "id" : "SGmgBXTULuXv", "state" : "STARTING" } ], "layout" : { "grid" : { "featuredParticipantAttribute" : "screen-share" } }, "stageArn" : "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik", "startTime" : "2023-09-27T21:32:38Z", "state" : "STARTING", "tags" : { } } }

스테이지 E813MFklPWLF 참가자가 스테이지에 참여하면 해당 참가자의 비디오가 추천 슬롯에 표시되고 다른 모든 스테이지 게시자는 슬롯 아래에 렌더링됩니다.

화면 공유 기능을 사용하여 구성 시작.

구성 중지

언제든지 구성을 중지하려면 StopComposition 엔드포인트를 호출하세요.

aws ivs-realtime stop-composition --arn arn:aws:ivs:us-east-1:927810967299:composition/B19tQcXRgtoz

구성 수명 주기

아래 다이어그램을 사용하여 구성의 상태 전환을 이해하세요. 대략적으로 구성의 수명 주기는 대략 다음과 같습니다.

  1. 구성 리소스는 사용자가 StartComposition 엔드포인트를 호출할 때 생성됩니다.

  2. IVS가 구성을 성공적으로 시작하면 "IVS 구성 상태 변경(세션 시작)" EventBridge 이벤트가 전송됩니다. 이벤트에 대한 자세한 내용은 IVS 실시간 스트리밍과 EventBridge 사용을 참조하세요.

  3. 구성이 활성 상태가 되면 다음과 같은 일이 발생할 수 있습니다.

    • 사용자가 구성 중지 - StopComposition 엔드포인트가 호출되면 IVS는 구성의 정상 종료를 시작하여 "대상 종료" 이벤트와 "세션 종료" 이벤트를 차례로 전송합니다.

    • 구성이 자동 종료됩니다. - IVS 스테이지에 적극적으로 게시하는 참가자가 없는 경우 60초 후에 구성이 자동으로 완료되고 EventBridge 이벤트가 전송됩니다.

    • 대상 오류 - 대상이 예기치 않게 실패하는 경우(예: IVS 채널 삭제) 대상이 해당 RECONNECTING 상태로 전환되고 “대상 재연결” 이벤트가 전송됩니다. 복구가 불가능한 경우 IVS는 대상을 해당 FAILED 상태로 전환하고 “대상 실패” 이벤트가 전송됩니다. IVS는 대상 중 하나 이상이 활성 상태인 경우 구성을 활성 상태로 유지합니다.

  4. 구성이 STOPPED 또는 FAILED 상태가 되면 5분 후에 자동으로 정리됩니다. (그러면 ListCompositions이나 GetComposition으로 더 이상 검색되지 않습니다.)

서버 측 구성 리소스의 수명 주기입니다.