IVS 서버 측 구성 개요
다음 다이어그램은 서버 측 구성의 작동 방식을 보여줍니다.
이점
클라이언트 측 구성과 비교할 때 서버 측 구성은 다음과 같은 이점이 있습니다.
-
클라이언트 부하 감소 - 서버 측 구성을 사용하면 오디오 및 비디오 소스를 처리하고 결합하는 부담이 개별 클라이언트 디바이스에서 서버 자체로 이동합니다. 서버 측 구성을 사용하면 클라이언트 디바이스에서 보기를 합성하고 IVS로 전송하는 데 클라이언트 디바이스의 CPU와 네트워크 리소스를 사용할 필요가 없습니다. 즉, 시청자는 디바이스에서 리소스를 많이 사용하는 작업을 처리하지 않고도 브로드캐스트를 시청할 수 있으므로 배터리 수명이 향상되고 시청 환경이 개선됩니다.
-
일관된 품질 - 서버 측 구성을 통해 최종 스트림의 품질, 해상도 및 비트레이트를 정밀하게 제어할 수 있습니다. 이를 통해 개별 디바이스의 성능과 상관없이 모든 시청자에게 일관된 시청 경험을 보장합니다.
-
복원력 - 구성 프로세스를 서버에서 중앙 집중화함으로써 브로드캐스트가 더욱 강력해집니다. 게시자 디바이스에 기술적 제한 사항이나 변동이 있더라도 서버는 적응하여 모든 대상 멤버에게 더 원활한 스트림을 제공할 수 있습니다.
-
대역폭 효율성 - 서버가 구성을 처리하므로 스테이지 게시자는 비디오를 IVS로 브로드캐스트하는 데 추가 대역폭을 소비하지 않아도 됩니다.
그 대신 IVS 채널로 스테이지를 브로드캐스트하려면 구성 클라이언트 측에서 할 수 있습니다. IVS 저지연 스트리밍 사용 설명서의 IVS 스트림에서 다중 호스트 활성화를 참조하세요.
구성 수명 주기
아래 다이어그램을 사용하여 구성의 상태 전환을 이해하세요.
대략적으로 구성의 수명 주기는 대략 다음과 같습니다.
-
구성 리소스는 사용자가 StartComposition 엔드포인트를 호출할 때 생성됩니다.
-
IVS가 구성을 성공적으로 시작하면 "IVS 구성 상태 변경(세션 시작)" EventBridge 이벤트가 전송됩니다. 이벤트에 대한 자세한 내용은 IVS 실시간 스트리밍과 EventBridge 사용을 참조하세요.
-
구성이 활성 상태가 되면 다음과 같은 일이 발생할 수 있습니다.
-
사용자가 구성 중지 - StopComposition 엔드포인트가 호출되면 IVS는 구성의 정상 종료를 시작하여 "대상 종료" 이벤트와 "세션 종료" 이벤트를 차례로 전송합니다.
-
구성이 자동 종료됩니다. - IVS 스테이지에 적극적으로 게시하는 참가자가 없는 경우 60초 후에 구성이 자동으로 완료되고 EventBridge 이벤트가 전송됩니다.
-
대상 오류 - 대상이 예기치 않게 실패하는 경우(예: IVS 채널 삭제) 대상이 해당
RECONNECTING
상태로 전환되고 “대상 재연결” 이벤트가 전송됩니다. 복구가 불가능한 경우 IVS는 대상을 해당FAILED
상태로 전환하고 “대상 실패” 이벤트가 전송됩니다. IVS는 대상 중 하나 이상이 활성 상태인 경우 구성을 활성 상태로 유지합니다.
-
-
구성이
STOPPED
또는FAILED
상태가 되면 5분 후에 자동으로 정리됩니다. (그러면 ListCompositions이나 GetComposition으로 더 이상 검색되지 않습니다.)
IVS API
서버 측 구성은 다음과 같은 주요 API 요소를 사용합니다.
-
EncoderConfiguration 객체를 사용하면 생성할 비디오의 형식(높이, 너비, 비트레이트 및 기타 스트리밍 파라미터)을 사용자 지정할 수 있습니다. StartComposition 엔드포인트를 호출할 때마다 EncoderConfiguration을 재사용할 수 있습니다.
-
구성 엔드포인트는 비디오 구성을 추적하고 IVS 채널로 출력합니다.
-
StorageConfiguration은 구성을 레코드하는 S3 버킷을 추적합니다.
서버 측 구성을 사용하려면 StartComposition 엔드포인트를 호출할 때 EncoderConfiguration을 생성하고 이를 연결해야 합니다. 이 예제에서는 SquareVideo EncoderConfiguration이 두 개의 구성에 사용됩니다.
전체 내용은 IVS 실시간 스트리밍 API 참조를 참조하세요.
레이아웃
StartComposition 엔드포인트에서는 그리드와 PIP(Picture in Picture)라는 두 가지 레이아웃 옵션을 제공합니다.
그리드 레이아웃
그리드 레이아웃에서는 크기가 동일한 슬롯 그리드에 스테이지 참가자를 정렬합니다. 사용자 지정 가능한 다음과 같은 여러 가지 속성을 제공합니다.
videoAspectRatio
에서는 비디오 타일의 종횡비를 제어하는 참가자 표시 모드를 설정합니다.videoFillMode
에서는 어떻게 하면 비디오 콘텐츠가 참가자 타일에 잘 어울리는지를 정의합니다.gridGap
에서는 참가자 타일 간 스페이스를 픽셀 단위로 지정합니다.omitStoppedVideo
에서는 구성에서 중지된 비디오 스트림 제외를 허용합니다.featuredParticipantAttribute
에서는 특성 슬롯을 식별합니다. 설정하면 주연 참가자가 기본 화면의 더 큰 슬롯에 표시되고 다른 참가자가 아래에 표시됩니다.
그리드 레이아웃에 대한 자세한 내용(모든 필드의 유효한 값 및 기본값 포함)은 GridConfiguration 데이터 유형을 참조하세요.
PIP(Picture in Picture) 레이아웃
PiP 레이아웃을 사용하면 크기, 위치 및 동작을 구성할 수 있는 오버레이 창에 참가자를 표시할 수 있습니다. 주요 속성은 다음과 같습니다.
pipParticipantAttribute
에서는 PiP 창의 참가자를 지정합니다.pipPosition
에서는 PiP 창의 모서리 위치를 결정합니다.pipWidth
및pipHeight
에서는 PiP 창의 너비와 높이를 구성합니다.pipOffset
에서는 PiP 창의 오프셋 위치를 가장 가까운 엣지의 픽셀 단위로 설정합니다.pipBehavior
에서는 다른 모든 참가자가 떠났을 때 PiP 동작을 정의합니다.
그리드 레이아웃과 마찬가지로 PiP에서는 featuredParticipantAttribute
, omitStoppedVideo
, videoFillMode
및 gridGap
를 지원하여 구성을 추가로 사용자 지정합니다.
PiP 레이아웃에 대한 자세한 내용(모든 필드의 유효한 값 및 기본값 포함)은 PipConfiguration 데이터 유형을 참조하세요.
참고: 서버 측 구성에서 스테이지 게시자가 지원하는 최대 해상도는 1080p입니다. 게시자가 1080p 이상의 비디오를 전송하는 경우 게시자는 오디오 전용 참가자로 렌더링됩니다.
중요: 애플리케이션이 타일의 크기 및 위치와 같은 현재 레이아웃의 특정 특성에 종속되지 않는지 확인하세요. 레이아웃에 대한 시각적 개선 사항은 언제든지 도입할 수 있습니다.