Una solución de software inherentemente contendrá mucho retraso debido a lo siguiente:
- La lectura de datos del framebuffer de la GPU es muy lenta.
- Incluso con una tasa de bits objetivo de alrededor del 80% de gigabit ethernet (no desea una utilización del 100% debido a los daños resultantes de la saturación), la mayoría de los códecs de video usarán una enorme cantidad de CPU para codificar 1080p en tiempo real. Incluso si tuviera una codificación asistida por GPU, estaría agotando la potencia de procesamiento del dispositivo que procesa su juego, probablemente reduciendo mucho la velocidad de fotogramas de su juego, debido a la poca capacidad de la mayoría de las GPU de realizar múltiples tareas entre programas separados.
- La E / S de gigabit ethernet sostenida, solo enviando los datos terminados a través del cable, consume una CPU significativa debido a las interrupciones. A expensas de cierta latencia, podría usar la moderación de interrupción, una característica de los nuevos conjuntos de chips de ethernet del servidor, para reducir el uso de la CPU.
Si desea que sea suave y agradable, debe usar una tarjeta de captura.
Aquí hay un ejemplo de uno de estos dispositivos: http://www.epiphan.com/products/frame-grabbers/vga2ethernet/
Este dispositivo tiene el concepto general de:
- Conecta el dispositivo a tu tarjeta gráfica
- Conecta su monitor al dispositivo
- Conecta la salida de ethernet del dispositivo a una computadora o enrutador
- Accede a la interfaz web del dispositivo a través de Ethernet, y tiene transmisión de video, sin pérdida, a pantalla completa si lo desea
Debido a que el dispositivo usa hardware dedicado para codificar los marcos y transmitirlos a través de Ethernet, será muy suave y con un FPS alto y confiable. También simplifica enormemente la configuración de su software, eliminando la necesidad de costosas soluciones de canalización en su plataforma de juego.
Si no desea gastar dinero y puede vivir con un retraso extremo y un FPS muy bajo, puede intentar algo como escribir una tubería en Gstreamer o VideoLAN (VLC) para capturar el framebuffer local, codificarlo en un códec de video, y transmitirlo a través de Shout o RTP o RTSP o un protocolo de transmisión similar, luego descargarlo / transmitirlo desde su computadora más lenta. Pero como te advertí, esto será lento.