textureId OpenGL. Engancha Facebetter en el callback de preprocess personalizado del vendor, ejecuta ImageFrame::CreateWithI420 (o NV12) → ProcessImage y luego escribe los planos de vuelta.
Comparte la misma API C++ que Linux. Lo básico: Implementar belleza. Unirse a la sala y publicar pertenecen a la documentación del vendor.
Contrato compartido
Compartido: procesar I420 y escribir planos de vuelta
TRTC (Tencent)
Windows / escritorio C++: el preprocess personalizado usa Buffer, no Texture. Los SDK más nuevos usanenableLocalVideoCustomProcess + setLocalVideoCustomProcessCallback (el antiguo setLocalVideoProcessCallback está deprecado: revisa tu versión).
Usa formato de píxel I420 y tipo de buffer Buffer. En onProcessVideoFrame, procesa srcFrame y rellena dstFrame.
Documentación de Tencent: el móvil puede usar Texture; PC solo admite Buffer. No sigas el camino
Texture_2D de Android en Windows.Agora
Enganche:IRtcEngine::registerVideoFrameObserver (C++ Video SDK 4.x). Windows suele entregar YUV420 / I420.
- Devuelve
PROCESS_MODE_READ_WRITEdesdegetVideoFrameProcessMode - En
onCaptureVideoFrame, ejecutaProcessI420InPlaceenyBuffer/uBuffer/vBuffer - Devuelve
truepara que el SDK conserve el fotograma
IRtcEngine y luego engine.reset().
LiveKit
En escritorio, el patrón habitual es una fuente de vídeo personalizada: capturas / procesas tú mismo y luego empujas fotogramas a LiveKit (cliente C++ o tu puente), no el callback de texturaVideoProcessor del móvil.
Pipeline recomendado:
- Captura fotogramas (cámara / DXGI / etc.)
CreateWithI420/CreateWithRGBA→ProcessImage- Envuelve la salida como fotograma LiveKit / WebRTC y empújala a
VideoSource/RTCVideoSource

