본문으로 건너뛰기
Version: 5.5

커스텀 비디오 소스

기본적으로 PlanetKit은 영상 통화 시작 시 카메라 장치를 자동으로 감지하여 제어하며, 카메라에서 캡처한 비디오를 영상 통화에 사용합니다. 하지만 애플리케이션의 요구사항에 따라 이를 변경해야 할 필요가 있을 수 있습니다. 사용자의 비디오 대신 외부 소스에서 가져온 비디오를 화면에 보여주는 것이 한 가지 예입니다.

이러한 요구를 충족할 수 있도록 PlanetKit은 원하는 비디오 프레임을 직접 공급할 수 있는 커스텀 비디오 소스(custom video source) 기능을 제공합니다. 이 기능을 통해 사용자가 원하는 비디오 프레임을 직접 PlanetKit 모듈에 렌더링하고 상대방에게 전달할 수 있습니다.

Note

커스텀 비디오 소스를 사용하는 동안은 PlanetKit이 카메라 장치를 제어하지 않습니다.

지원 통화 유형최소 SDK 버전
1대1 통화, 그룹 통화(컨퍼런스)PlanetKit 5.5

구현 절차

커스텀 비디오 소스 기능을 구현하는 절차는 다음과 같습니다.

커스텀 비디오 소스 클래스 구현하기

PlanetKitCustomCamera를 상속 받는 클래스를 만들고 메서드를 구현하세요.

import PlanetKit

class CustomCamera: PlanetKitCustomCamera {
static var shared = CustomCamera()

// Implement the abstract method to handle FPS limit updates
override func processFpsLimitUpdate(enabled: Bool, fps: Int32) {
// Handle the FPS limit update
// If `enabled` is true, adjust your frame generation logic to according to the `fps`
}

// Method to simulate video buffer processing
func processVideoBuffer(buffer: CMSampleBuffer) {
guard let targetBuffer = PlanetKitVideoBuffer.getPreferredSampleBuffer(buffer) else {
return
}

let timestamp = CMSampleBufferGetPresentationTimeStamp(targetBuffer)

// Check if video buffer can be sent. If false, drop the buffer.
guard isVideoSendAvailable(timestamp: timestamp) else { return }


let videoBuffer = PlanetKitVideoBuffer(sampleBuffer: targetBuffer,
timestamp: timestamp,
rotation: .rotation0,
position: .unknown,
sender: nil,
source: .camera)

sendVideo(videoBuffer: videoBuffer)
}
}

커스텀 비디오 소스 사용하기

커스텀 비디오 소스를 사용하려면 구현한 커스텀 비디오 소스 객체를 인자로 PlanetKitCameraManagersetCustomCamera()를 호출하세요.

PlanetKitCameraManager.shared.setCustomCamera(CustomCamera.shared)

커스텀 비디오 소스를 카메라로 되돌려 놓기

커스텀 비디오 소스를 카메라로 되돌려 놓으려면 PlanetKitCameraManagerresetToDefaultCamera()를 호출하세요.

PlanetKitCameraManager.shared.resetToDefaultCamera()

관련 API

커스텀 비디오 소스 기능과 관련된 API는 다음과 같습니다.

  • PlanetKitCustomCamera iOS, macOS
  • PlanetKitCameraManagersetCustomCamera() iOS, macOS
  • PlanetKitCameraManagerresetToDefaultCamera() iOS, macOS

활용 예시

아래와 같은 애플리케이션 요구사항이 있을 때 커스텀 비디오 소스를 활용하여 구현할 수 있습니다.

  • 영상 파일을 비디오 소스로 사용하고자 할 때
  • 라이브 이원 생중계나 웹 스트리밍을 받아서 비디오 소스로 사용하고자 할 때
  • 카메라 장치에 대한 제어를 PlanetKit에서 하지 않고 애플리케이션에서 직접 하고 싶을 때