processImage を実行し、出力テクスチャを返します。
テクスチャの完全なルール: 美顔の実装 · 外部テクスチャ。ルーム参加、配信、権限はベンダーのドキュメントに従います。このページは Facebetter の接続のみを扱います。
共通の契約
Facebetter は
createWithTexture に GL_TEXTURE_EXTERNAL_OES を受け付けません。ベンダーが OES をデフォルトにする場合は、ドキュメントに従い Texture2D / RGB に切り替えるか、先に GL_TEXTURE_2D へ blit してください。
共通ヘルパー
各ベンダーの GL コールバックで再利用します(GL スレッドで実行する必要があります)。TRTC(Tencent)
フック:TRTCCloud.setLocalVideoProcessListener。ピクセルフォーマットは Texture_2D、バッファタイプは TEXTURE です。
onGLContextCreated で Facebetter を作成し、onProcessVideoFrame で処理して dstFrame.texture.textureId を設定し、onGLContextDestory で release() します。
FacebetterPlugin.processTexture。この Java API ではありません)。
Agora
フック:RtcEngine.registerVideoFrameObserver(Video SDK 4.x)。次が必要です。
getVideoFrameProcessMode()からPROCESS_MODE_READ_WRITEを返す- タイプ RGB(
GL_TEXTURE_2D) の TextureBuffer を優先する onCaptureVideoFrame(または選択した観測位置)で Facebetter を実行し、処理済みテクスチャをVideoFrameに書き戻す
RtcEngine を破棄する前にオブザーバーを登録解除し、beautyEngine.release() してください。
LiveKit
フック: ローカル動画トラック作成時にorg.webrtc.VideoProcessor(または同等のトラックプロセッサ)を渡します。onFrameCaptured でテクスチャを処理し、sink.onFrame(...) で配信します。
VideoCapturer を実装し、キャプチャ後に processTexture を実行してから capturerObserver.onFrameCaptured を呼ぶこともできます。公式プロセッサ(バーチャル背景など)は LiveKit の livekit-android-track-processors モジュールにあります。

