하드웨어 비디오 코덱 지원
LINE Planet은 1대1 통화나 그룹 통화(컨퍼런스)에서 사용자 기기의 하드웨어 비디오 코덱이 활성화되거나 비활성화되도록 요청할 수 있습니다.
여기서는 하드웨어 비디오 코덱의 활성화 또는 비활성화를 설정하고 그 결과를 확인하는 법을 안내합니다.
지원 통화 유형 | 최소 SDK 버전 |
---|---|
1대1 통화, 그룹 통화 | PlanetKit 3.2 |
하드웨어 비디오 코덱을 지원하기 위해 LINE Planet 자체에서 H.264 코덱을 제공하지는 않으며, 사용자 기기에 H.264 하드웨어 코덱이 있는 경우 LINE Planet은 사용자 기기의 H.264 하드웨어 코덱이 활성화되도록 요청합니다. 자세한 내용은 LINE Planet 통화 품질을 참고하세요.
하드웨어 비디오 코덱 활성화 또는 비활성화 설정
이 섹션에서는 통화 유형에 따라 하드웨어 비디오 코덱을 활성화하거나 비활성화하도록 설정하는 방법을 설명합니다.
아래와 같은 이유로, 반드시 하드웨어 비디오 코덱이 활성화된다고 보장하지는 않습니다.
- 1대1 통화에서 피어가 하드웨어 비디오 코덱을 이용할 수 없을 때가 있습니다.
- LINE Planet 팀이 운영상의 이슈로 해당 기능을 비활성화할 경우가 있습니다.
1대1 통화
1대1 통화에서는 하드웨어 비디오 코덱을 활성화하거나 비활성화하도록 통화 파라미터를 설정할 수 있습니다.
발신자 측
발신자 측에서는 다음 코드와 같이 통화를 생성(make)할 때 인코딩 및 디코딩 기능 둘 다 하드웨어 비디오 코덱을 활성화하거나 비활성화하도록 설정합니다.
val myVideoSendCapability: PlanetKitVideoCapability = PlanetKitVideoCapability.callSendDefault()
val myVideoReceiveCapability: PlanetKitVideoCapability = PlanetKitVideoCapability.callReceiveDefault()
// For both callSendDefault() and callReceiveDefault(), the default value of preferredHwCodec is true.
// To request deactivation of hardware video codec, set both to false as follows:
// myVideoSendCapability.preferredHwCodec = false
// myVideoReceiveCapability.preferredHwCodec = false
val param = PlanetKitMakeCallParam.Builder()
.myId(myUserId)
.myServiceId(myServiceId)
.peerId(peerUserId)
.peerServiceId(peerServiceId)
.myVideoSendCapability(myVideoSendCapability)
.myVideoReceiveCapability(myVideoReceiveCapability)
.build()
val result = PlanetKit.makeCall(param, makeCallListener)
착신자 측
착신자 측에서는 다음 코드와 같이 통화를 수신(verify)할 때 인코딩 및 디코딩 기능 둘 다 하드웨어 비디오 코덱을 활성화하거나 비활성화하도록 설정합니다.
val myVideoSendCapability: PlanetKitVideoCapability = PlanetKitVideoCapability.callSendDefault()
val myVideoReceiveCapability: PlanetKitVideoCapability = PlanetKitVideoCapability.callReceiveDefault()
// For both callSendDefault() and callReceiveDefault(), the default value of preferredHwCodec is true.
// To request deactivation of hardware video codec, set both to false as follows:
// myVideoSendCapability.preferredHwCodec = false
// myVideoReceiveCapability.preferredHwCodec = false
val param = PlanetKitVerifyCallParam.Builder()
.myId(myUserId)
.myServiceId(myServiceId)
.peerId(peerUserId)
.peerServiceId(peerServiceId)
.myVideoSendCapability(myVideoSendCapability)
.myVideoReceiveCapability(myVideoReceiveCapability)
.build()
val result = PlanetKit.verifyCall(param, verifyCallListener)
그룹 통화
그룹 통화에서 하드웨어 비디오 코덱을 활성화하거나 비활성화하도록 설정하려면 다음 코드와 같이 그룹 통화에 입장할 때 인코딩 및 디코딩 기능 둘 다 하드웨어 비디오 코덱을 활성화하거나 비활성화하도록 설정합니다.
val myVideoSendCapability: PlanetKitVideoCapability = PlanetKitVideoCapability.conferenceSendDefault()
// For conferenceSendDefault(), the default value of preferredHwCodec is true.
// To request deactivation of hardware video codec for encoding, set preferredHwCodec to false as follows:
// myVideoSendCapability.preferredHwCodec = false
// To enable or disable hardware video codec for decoding, set preferredPeerVideoHwCodec of PlanetKitConferenceParam to true or false.
val param = PlanetKitConferenceParam.Builder()
.myId(myUserId)
.myServiceId(myServiceId)
.roomId(roomId)
.roomServiceId(roomServiceId)
.myVideoSendCapability(myVideoSendCapability)
.preferredPeerVideoHwCodec(true)
.build()
val result = PlanetKit.joinConference(param, conferenceListener)
하드웨어 비디오 코덱 활성화 여부 확인
하드웨어 비디오 코덱의 활성화/비활성화 결과는 콜 셋업(call setup) 과정에서 결정됩니다. 따라서 onConnected
이벤트가 발생한 후에 결과를 확인해야 합니다.
- 1대1 통화에서는
onConnected
에서 전달한PlanetKitCallConnectedParam
의isVideoHwCodecEnabled
를 사용하여 하드웨어 코덱 활성화 여부를 확인할 수 있습니다. - 그룹 통화에서는
onConnected
에서 전달한isVideoHwCodecEnabled
를 사용하여 하드웨어 코덱 활성화 여부를 확인할 수 있습니다.
관련 API
하드웨어 비디오 코덱 지원과 관련된 API는 다음과 같습니다.
1대1 통화
-
PlanetKitMakeCallParam.Builder
의myVideoSendCapability()
-
PlanetKitMakeCallParam.Builder
의myVideoReceiveCapability()
-
PlanetKitVerifyCallParam.Builder
의myVideoSendCapability()
-
PlanetKitVerifyCallParam.Builder
의myVideoReceiveCapability()