Skip to main content
SDK 2.0.0. 서드파티 SDK의 커스텀 비디오 전처리 콜백에 Facebetter를 겁니다. 해당 SDK의 OpenGL 스레드(또는 픽셀 버퍼 콜백)에서 프레임을 처리한 뒤 결과를 반환합니다. iOS · 서드파티 연동과 동일한 Objective-C API를 공유합니다. 차이는 주로 런타임(OpenGL, App Sandbox, 프로세스 이름 바인딩)입니다. 전체 텍스처 규칙: 뷰티 효과 적용 · 외부 텍스처.

공통 계약

TRTC 커스텀 전처리는 보통 OpenGL 텍스처를 사용합니다. Agora / LiveKit는 **CVPixelBuffer**를 더 자주 제공합니다. 한 엔진에서 두 모드를 섞지 마세요.

공유: 텍스처 처리

공유: CVPixelBuffer 처리 (NV12 스케치)

픽셀 버퍼 경로에는 externalContext = NO를 사용하세요. 자격 증명: 구독, 인증 및 라이선스. Bundle ID가 없는 CLI 도구는 Dashboard에서 프로세스 이름을 바인딩하세요.

TRTC (Tencent)

훅: setLocalVideoProcessDelegete:pixelFormat:bufferType:(공식 철자 Delegete). TRTCVideoPixelFormat_Texture_2D + TRTCVideoBufferType_Texture.
델리게이트를 지우거나 방을 나간 뒤 엔진을 nil로 둡니다. 최신 세부 사항은 Tencent TRTC 서드파티 뷰티 문서를 참고하세요.

Agora

훅: AgoraRtcEngineKit.setVideoFrameDelegate:(Video SDK 4.x). macOS의 캡처 프레임도 보통 **CVPixelBuffer**입니다.
처리된 CVPixelBuffer를 Agora 프레임에 다시 쓰는 방식은 메이저 버전마다 다릅니다. Facebetter는 입력과 같은 형식으로 출력을 유지합니다. AgoraOutputVideoFrame에 주입하는 방법은 Agora 문서를 따르세요.
해제 전에 setVideoFrameDelegate:nil을 호출하고 beautyEngine을 nil로 둡니다.

LiveKit

Swift VideoProcessor를 구현하고 process(frame:)에서 CVPixelBuffer를 처리한 뒤, 카메라 트랙을 만들 때 processor:를 전달합니다(macOS에서도 지원).
공식 샘플은 BackgroundBlurVideoProcessor(macOS 12+)를 참고하세요. 화면 공유 트랙도 같은 processor 패턴을 사용할 수 있습니다(API는 LiveKit Swift 버전에 따름).

문제 해결

관련 문서