Saltar al contenido
Nubo/ Guías
Arquitectura2 min de lectura

ScreenCaptureKit, VideoToolbox y Metal: el recorrido de un fotograma

Cómo se reparten la captura, la compresión y la presentación, y por qué importa limitar las colas.

Captura y codificación en el Mac

Nubo usa ScreenCaptureKit para obtener el escritorio y VideoToolbox para codificar vídeo. Son etapas distintas: capturar una imagen no equivale a comprimirla ni a transmitirla.

La aceleración por hardware reduce trabajo de CPU cuando está disponible. La resolución, el códec y la carga del equipo siguen influyendo en el tiempo necesario. Usar APIs nativas no convierte el procesamiento en gratuito.

Decodificación y presentación en el iPad

El vídeo viaja por canales de red cifrados. En el iPad, VideoToolbox decodifica y Metal presenta los fotogramas. SwiftUI gestiona los controles, no una secuencia de imágenes del escritorio.

Un objetivo del diseño es evitar copias y conversiones innecesarias. Esto no implica que toda la ruta sea literalmente cero copias: hay operaciones de compresión, empaquetado y cifrado.

Medir fluidez, no solo FPS

Acumular fotogramas antiguos aumenta la distancia entre lo que haces y lo que ves. Las colas limitadas y la adaptación de calidad ayudan a contener ese retraso, pero la recuperación también debe respetar las dependencias del códec.

Para diagnosticar, separa FPS recibidos, fotogramas presentados y latencia de red. Un iPad con ProMotion no implica automáticamente recibir vídeo remoto a 120 FPS. Tampoco el RTT de red mide toda la latencia visible.

Referencias