Skip to main content
SDK 2.0.0. Encaixe o Facebetter no callback de pré-processamento de vídeo personalizado de um SDK de terceiros: processe os quadros no thread OpenGL desse SDK (ou no callback de pixel-buffer) e, em seguida, devolva o resultado. Compartilha a mesma API Objective-C de iOS · Integração com terceiros; as diferenças são principalmente de runtime (OpenGL, App Sandbox, vinculação pelo nome do processo). Regras completas de textura: Implementar beleza · Textura externa.

Contrato compartilhado

O pré-processamento personalizado do TRTC costuma usar texturas OpenGL; Agora / LiveKit mais frequentemente entregam CVPixelBuffer. Não misture os dois modos no mesmo mecanismo.

Compartilhado: processar textura

Compartilhado: processar CVPixelBuffer (esboço NV12)

Use externalContext = NO no caminho de pixel-buffer. Credenciais: Assinatura, Autenticação e licença. Vincule o nome do processo no Console para ferramentas CLI sem Bundle ID.

TRTC (Tencent)

Hook: setLocalVideoProcessDelegete:pixelFormat:bufferType: (grafia oficial Delegete). TRTCVideoPixelFormat_Texture_2D + TRTCVideoBufferType_Texture.
Atribua nil ao mecanismo depois de limpar o delegate ou sair da sala. Consulte a documentação de beleza de terceiros TRTC da Tencent para os detalhes mais recentes.

Agora

Hook: AgoraRtcEngineKit.setVideoFrameDelegate: (Video SDK 4.x). Os quadros capturados no macOS também costumam ser CVPixelBuffer.
Como escrever um CVPixelBuffer processado de volta no quadro da Agora muda entre versões principais. O Facebetter mantém a saída no mesmo formato da entrada; siga a documentação da Agora para injetar em AgoraOutputVideoFrame.
Chame setVideoFrameDelegate:nil e atribua nil a beautyEngine antes do teardown.

LiveKit

Implemente o Swift VideoProcessor, processe CVPixelBuffer em process(frame:) e passe processor: ao criar a track da câmera (também suportado no macOS).
Veja BackgroundBlurVideoProcessor (macOS 12+) para um exemplo oficial. Tracks de compartilhamento de tela podem usar o mesmo padrão de processador (API conforme sua versão LiveKit Swift).

Solução de problemas

Relacionado