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
TRTC (Tencent)
Windows / desktop C++: o pré-processamento personalizado usa Buffer, não Texture. SDKs mais novos usamenableLocalVideoCustomProcess + 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.
- Retorne
PROCESS_MODE_READ_WRITEdegetVideoFrameProcessMode - Em
onCaptureVideoFrame, executeProcessI420InPlaceemyBuffer/uBuffer/vBuffer - Retorne
truepara o SDK manter o quadro
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 texturaVideoProcessor do mobile.
Pipeline recomendado:
- Capturar quadros (câmera / DXGI / etc.)
CreateWithI420/CreateWithRGBA→ProcessImage- Encapsular a saída como um quadro LiveKit / WebRTC e enviar para
VideoSource/RTCVideoSource

