Skip to main content
SDK 2.0.0. O desktop difere do mobile: TRTC / Agora no Windows costumam entregar buffers de CPU (I420 / YUV), não textureId OpenGL. Encaixe o Facebetter no callback de pré-processamento personalizado do fornecedor, execute ImageFrame::CreateWithI420 (ou NV12) → ProcessImage e, em seguida, escreva os planos de volta. Compartilha a mesma API C++ de Linux. Básico: Implementar beleza. Entrar na sala / publicar ficam na documentação do fornecedor.

Contrato compartilhado

Compartilhado: processar I420 e escrever os planos de volta

Crie o mecanismo:
Credenciais: Assinatura, Autenticação e licença.

TRTC (Tencent)

Windows / desktop C++: o pré-processamento personalizado usa Buffer, não Texture. SDKs mais novos usam enableLocalVideoCustomProcess + setLocalVideoCustomProcessCallback (o setLocalVideoProcessCallback mais antigo está descontinuado — confira sua versão). Use o formato de pixel I420 e o tipo de buffer Buffer. Em onProcessVideoFrame, processe srcFrame e preencha dstFrame.
Docs da Tencent: o mobile pode usar Texture; o PC suporta somente Buffer. Não siga o caminho Texture_2D do Android no Windows.

Agora

Hook: IRtcEngine::registerVideoFrameObserver (C++ Video SDK 4.x). O Windows normalmente entrega YUV420 / I420.
  1. Retorne PROCESS_MODE_READ_WRITE de getVideoFrameProcessMode
  2. Em onCaptureVideoFrame, execute ProcessI420InPlace em yBuffer / uBuffer / vBuffer
  3. Retorne true para o SDK manter o quadro
Cancele o registro antes de destruir IRtcEngine e, em seguida, engine.reset().

LiveKit

No desktop, o padrão usual é uma fonte de vídeo personalizada: capture / processe você mesmo e, em seguida, envie os quadros para o LiveKit (cliente C++ ou sua ponte) — não o callback de textura VideoProcessor do mobile. Pipeline recomendado:
  1. Capturar quadros (câmera / DXGI / etc.)
  2. CreateWithI420 / CreateWithRGBAProcessImage
  3. Encapsular a saída como um quadro LiveKit / WebRTC e enviar para VideoSource / RTCVideoSource
Os nomes exatos dos tipos variam conforme a versão do cliente LiveKit — veja a documentação LiveKit para tracks personalizadas. O Facebetter cobre apenas o passo 2.

Solução de problemas

Relacionado