그룹 통화에서 피어 비디오 해상도 설정
애플리케이션은 그룹 영상 통화에서 PlanetKitPeerControl
의 startVideo()
를 호출해 특정 피어로부터 비디오 스트림을 요청할 수 있습니다. 이 문서에서는 비디오 스트림을 요청할 때 비디오 해상도를 설정하는 방법을 설명합니다.
지원 통화 유형 | 지원 SDK 버전 |
---|---|
그룹 통화(컨퍼런스) | 모든 버전 |
PlanetKitPeerControl
사용 방법에 대한 자세한 내용은 그룹 영상 통화 예제 코드를 참고하세요.
개요
startVideo()
를 호출할 때 해상도 유형을 설정할 수 있습니다. 사용 가능한 해상도 유형 중 RECOMMENDED
는 PlanetKit이 상황에 따라 자동으로 해상도를 조정하도록 합니다. 또한 해상도 유형으로 THUMBNAIL
, QVGA
, VGA
또는 HD
를 사용하여 수동으로 해상도를 설정할 수 있습니다.
LINE Planet은 적응형 비트레이트 기능을 지원하며, 비디오 해상도는 이 기능의 비트레이트 제어 대상입니다. 따라서 권장 해상도(RECOMMENDED) 또는 특정 해상도(HD, VGA 등)로 설정하더라도 네트워크 상태에 따라 임의로 더 낮은 해상도로 조정되거나 다시 복구될 수 있습니다.
권장 해상도 사용
보통 비디오 스트림 수가 많을수록 CPU와 메모리 사용량이 늘어납니다. 해상도가 높을수록 네트워크 대역폭도 많이 필요합니다. CPU나 메모리, 네트워크를 과하게 사용하면 사용자는 저품질 통화를 경험하게 됩니다. 다시 말해, 부적절한 해상도로 startVideo()
를 호출하면 비디오 품질뿐 아니라 오디오 품질까지 떨어질 수 있습니다.
최적의 품질을 유지하기 위해 PlanetKit은 피어 수에 따라 적절한 해상도를 내부적으로 정의합니다. 뷰 스타일별 권장 설정은 다음과 같습니다.
- 그리드 뷰: 모든 피어를
RECOMMENDED
로 설정합니다. - 포커스 뷰: 하나의 특정 피어를 HD로 설정하고 나머지는
RECOMMENDED
로 설정합니다.
이어지는 섹션에서는 하나 이상의 피어에 대해 해상도로 RECOMMENDED
가 설정된 경우 PlanetKit에서 정의하는 해상도 값을 보여줍니다. 네트워크 환경에 따라 해상도가 처음 설정한 해상도보다 일시적으로 낮아질 수 있음을 참고하시기 바랍니다.
모두 권장 해상도로 설정
그리드 뷰와 같은 뷰 스타일의 경우 모든 피어의 해상도를 RECOMMENDED
로 설정하는 것이 좋습니다. 이 경우 PlanetKit은 내부적으로 다음과 같이 해상도를 결정합니다.
iOS 및 Android | macOS 및 Windows | |
---|---|---|
모두 RECOMMENDED 설정 | 비디오 피어1 수 1-3: VGA 비디오 피어 수 4-8: QVGA 비디오 피어 수 9+: THUMB2 | 비디오 피어 수 1-8: VGA 비디오 피어 수 9-24: QVGA 비디오 피어 수 25+: THUMB |
화면 공유3 | 모두 THUMB | 모두 THUMB |
1 비디오 피어는 비디오가 요청된 피어를 의미합니다. 따라서 비디오 피어 수는 총 참가자 수와 다를 수 있습니다.
2 THUMB는 썸네일 크기를 의미합니다.
3 화면 공유 시 나머지 피어의 해상도는 썸네일 크기로 변경됩니다.
권장 해상도와 함께 특정 해상도 설정
포커스 뷰와 같은 뷰 스타일의 경우 특정 사용자에 대해 높은 해상도를 설정해야 합니다. 이 경우 높은 해상도와 RECOMMENDED
의 조합으로 구성되며 PlanetKit은 내부적으로 다음과 같이 해상도를 결정합니다.
iOS 및 Android | macOS 및 Windows | |
---|---|---|
RECOMMENDED 설정과 함께 HD 설정 | HD로 설정된 피어를 제외하고 모두 THUMB | HD로 설정된 피어를 제외하고 모두 THUMB |
RECOMMENDED 설정과 함께 특정 해상도 설정(HD 제외) | RECOMMENDED 로 설정된 피어:비디오 피어 수 1-3: VGA 비디오 피어 수 4-8: QVGA 비디오 피어 수 9+: THUMB 특정 해상도로 설정된 피어의 경우 수동 설정을 따릅니다. | RECOMMENDED 로 설정된 피어:비디오 피어 수 1-8: VGA 비디오 피어 수 9-24: QVGA 비디오 피어 수 25+: THUMB 특정 해상도로 설정된 피어의 경우 수동 설정을 따릅니다. |
화면 공유 | 모두 THUMB | 모두 THUMB |
특정 해상도 사용
startVideo()
를 호출할 때 특정 해상도를 설정하는 것도 가능합니다.
아래는 적절한 비디오 해상도로 startVideo()
를 호출하는 예제입니다. 여기서는 위 표에서 권장한 것처럼 참여자가 최대 3명일 때는 VGA로 표시하고, 4명 이상일 때는 QVGA로 표시하기로 합니다.
User-01과 User-02가 그룹 통화에 참여해 비디오를 켭니다. 그룹 통화에 참여하는 기본적인 흐름은 그룹 통화 흐름을 참고하세요.
User-03이 참여하면, 모든 참여자가 onPeerListUpdated
이벤트를 통해 누가 새로 왔는지 알게 됩니다. 또 onPeersVideoUpdated
이벤트를 통해 비디오를 사용할 수 있는 참여자 목록도 갱신합니다.
이벤트를 보내면서, User-03은 현재 그룹 통화에 자신을 포함해 3명이 있고 비디오 스트림도 3개가 있다는 것을 알게 됩니다. 애플리케이션 설계에 따라, User-03은 VGA 해상도로 두 비디오 스트림을 요청해야 합니다. User-01과 User-02용으로 각각 startVideo()
를 호출하면 됩니다.
이와 똑같이, User-01과 User-2도 User-03이 비디오를 활성화한 상태로 참여했다는 것을 알게 됩니다. 위 다이어그램에서 보는 것처럼 User-01과 User-02가 User-03의 비디오를 VGA로 표시하기 위해 startVideo()
를 호출합니다.
잠시 후, User-04가 참여합니다. User-03은 그룹 통화 참여자 수가 늘어났음을 알았으니 QVGA로 표시하도록 해야 합니다. 따라서 User-03은 User-01과 User-02의 해상도를 QVGA로 바꾸도록 startVideo()
를 호출합니다. 그런 다음 User-04의 QVGA 해상도 비디오를 요청하기 위해 startVideo()
를 호출합니다.
관련 API
그룹 통화에서 피어 비디오 해상도 설정과 관련된 API는 다음과 같습니다.