아마존 Chime SDK가 WebRTC 미디어를 사용하는 방법 - Amazon Chime SDK

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

아마존 Chime SDK가 WebRTC 미디어를 사용하는 방법

Amazon Chime SDK는 표준과 고화질이라는 두 가지 유형의 WebRTC 세션을 지원합니다. 다음 주제에서는 React JavaScript, iOS 및 Android용 Amazon Chime SDK 클라이언트 라이브러리를 사용할 때 각 세션 유형에서 사용할 수 있는 미디어에 대해 설명합니다.

오디오

각 Amazon Chime 클라이언트는 세션에 하나의 오디오 스트림을 전송하고 세션에서 하나의 오디오 스트림을 수신합니다. 일반적으로 로컬 디바이스의 마이크가 오디오를 생성합니다. 수신된 오디오는 다른 세션 클라이언트에서 전송된 오디오의 믹스입니다.

두 가지 세션 유형 모두 Opus 코덱을 사용하여 최대 48kHz의 샘플 속도와 최대 2개의 채널(스테레오)을 지원하며 최대 128kbps의 비트 전송률로 인코딩됩니다. 하지만 송수신되는 오디오 스트림은 클라이언트 라이브러리 유형에 따라 다릅니다.

  • JavaScript 및 React용 Amazon Chime SDK 클라이언트 라이브러리는 장치 및 브라우저에서 지원하는 최고 샘플링 속도 (최대 48kHz) 로 모노 및 스테레오 오디오 송수신을 지원합니다.

  • iOS 및 안드로이드용 Amazon Chime SDK 클라이언트 라이브러리는 최대 48kHz의 모노 오디오 전송과 48kHz의 스테레오 오디오 수신을 지원합니다.

비디오

각 Amazon Chime 클라이언트는 세션에 하나의 비디오 스트림을 전송하고 세션에서 최대 25개의 비디오 스트림을 수신합니다. 전송된 비디오는 일반적으로 로컬 디바이스의 웹캠에서 제공합니다. 각 클라이언트는 수신할 비디오 스트림을 최대 25개까지 선택하고 세션 중에 언제든지 선택 항목을 변경할 수 있습니다.

표준 세션은 H.264, VP8, VP9 및 AV1을 사용하여 최대 1,500kbps의 비트 전송률로 인코딩된 초당 30프레임으로 비디오 해상도를 최대 1280x720까지 지원합니다.

고화질 세션은 H.264, VP8, VP9 및 AV1을 사용하여 최대 2,500kbps의 비트 전송률로 인코딩된 초당 30프레임으로 비디오 해상도를 최대 1920x1080까지 지원합니다.

JavaScript 및 React용 Amazon Chime SDK 클라이언트 라이브러리는 초당 15프레임의 동시 방송 또는 확장 가능한 비디오 코딩 (SVC) 을 통한 비디오 전송을 지원합니다. SVC는 세 개의 공간 레이어와 세 개의 시간 레이어로 구성된 단일 비디오 스트림을 목표 값의 100%, 50%, 25%로 인코딩합니다. 이 서비스는 뷰어의 가용 대역폭을 기반으로 각 뷰어에게 전송할 레이어를 자동으로 선택합니다.

iOS 및 안드로이드용 Amazon Chime SDK 클라이언트 라이브러리는 초당 최대 15프레임의 전송을 지원합니다. 하지만 실제 프레임 속도와 해상도는 Amazon Chime SDK에서 자동으로 관리합니다.

비디오 인코딩 및 디코딩은 성능 향상을 위해 가능한 경우 하드웨어 가속을 사용합니다.

클라이언트가 최대 허용 비트 전송률을 초과하여 비디오를 전송하는 경우 세션은 먼저 실시간 제어 프로토콜을 통해 클라이언트에게 수신자 예상 최대 비트 전송률 메시지를 보내기 시작합니다. 클라이언트가 최대 허용 비트 전송률을 초과하여 비디오를 계속 전송하는 경우 세션에서는 들어오는 비디오 스트림 패킷을 폐기합니다.

콘텐츠 공유

최대 2개의 클라이언트에서 세션에 콘텐츠를 공유할 수 있습니다. 콘텐츠 공유에는 비디오 트랙, 오디오 트랙 또는 둘 다 포함될 수 있습니다. 콘텐츠 공유의 일반적인 예로는 화면 캡처를 콘텐츠 원본으로 사용하는 화면 공유가 있습니다. 또 다른 예로 사전 녹화된 콘텐츠를 비디오 및 오디오 트랙과 공유하는 경우가 있습니다.

콘텐츠 오디오는 세션에서 전송된 오디오 스트림에 믹싱됩니다. 콘텐츠 오디오는 Opus 코덱을 사용하여 최대 48kHz의 샘플 속도와 최대 2개의 채널(스테레오)을 지원하며 최대 128kbps의 비트 전송률로 인코딩됩니다.

비디오 콘텐츠는 세션으로 전송되고 별도의 비디오 스트림에서 클라이언트에 전달됩니다. 표준 세션은 초당 30프레임으로 최대 1920x1080의 콘텐츠 비디오를 지원합니다. 고화질 세션은 초당 30프레임으로 최대 3840 x 2160의 콘텐츠 비디오를 지원합니다.

콘텐츠 공유를 위한 화면 캡처는 캡처되는 화면 또는 창의 해상도를 사용하며 세션 유형에 맞는 최대 콘텐츠 해상도, 초당 최대 30프레임을 지원합니다. 하지만 디바이스 및 브라우저 기능에 따라 이러한 값이 제한될 수 있습니다.

JavaScript 및 React용 Amazon Chime SDK 클라이언트 라이브러리는 화면 캡처 및 기타 소스의 콘텐츠 공유를 지원합니다.

iOS 및 Android용 Amazon Chime SDK 클라이언트 라이브러리는 화면 캡처를 사용한 콘텐츠 공유를 지원합니다.

데이터 메시지

데이터 메시지는 클라이언트가 세션 중인 다른 클라이언트에게 정보를 브로드캐스트할 수 있는 방법을 제공합니다. 예를 들어 애플리케이션은 데이터 메시지를 사용하여 세션 중에 이모티콘 반응을 공유할 수 있습니다.

각 데이터 메시지는 다음을 포함합니다.

  • 주제, 최대 64자의 문자열

  • 주제를 포함한 최대 2KB의 데이터

클라이언트는 세션에 데이터 메시지를 보내고 세션은 연결된 모든 클라이언트에게 데이터 메시지를 보냅니다.

세션은 선택적으로 데이터 메시지를 최대 5분 동안 캐시할 수 있습니다. 클라이언트가 세션에 참여하거나 다시 연결하는 경우 세션은 이전에 전송되지 않은 캐시된 데이터 메시지를 클라이언트에게 자동으로 보냅니다. 세션 캐시는 최대 1,024개의 데이터 메시지를 저장합니다.

세션은 초당 최대 100개의 데이터 메시지 전송을 지원합니다. 라이브 트랜스크립션을 사용하는 경우 각 클라이언트는 데이터 메시지를 통해 트랜스크립션 메시지를 수신하며, 데이터 메시지는 초당 전송된 총 메시지 수에 포함됩니다.