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.