¿Juegos por LAN, alternativa VNC?

15

Bien, he hecho más que un poco de tarea sobre esto y estoy empezando a pensar que el mundo se opone de alguna manera a esta idea.

Tengo una computadora portátil en mi casa, SB Core i3 con una GPU GMA HD que es absolutamente terrible para todo lo visual, y me gustaría transmitir video desde mi equipo de escritorio de naturaleza 3D (descartando RDP y otros protocolos basados ​​en ganchos).

La primera respuesta de la mayoría de las personas a hilos similares está relacionada con el ancho de banda o la potencia de procesamiento. He estado probando ante todo con un Gigabit lan, y mi equipo de escritorio tiene un 3930k overclockeado, así que soy de la opinión de que DEBERÍA haber un equilibrio entre el gruñido de la CPU y el ancho de banda que me permitiría obtener al menos 20 FPS de actualización de pantalla completa . Hasta ahora no puedo usar TightVNC, probando reproduciendo un video en pantalla completa en la máquina host.

Para resumir las cosas, con más de 30 veces el ancho de banda de OnLive, ¿cómo puedo crear un nivel de alimentación de video incluso irregular entre LAN en mi propia casa? ¿Es posible y cómo?

usuario1901982
fuente
1
¿ Ya has mirado RemoteFX ? "RemoteFX ofrece una rica experiencia de usuario para la Infraestructura de escritorio virtual (VDI) al proporcionar un adaptador virtual 3D, códecs inteligentes y la capacidad de redirigir dispositivos USB en máquinas virtuales". Sin embargo, es posible que deba comprar Server 2012. ;)
Ƭᴇcʜιᴇ007
compruebe este proyecto: spgt.sourceforge.net, que permite transmitir una parte del escritorio y también reenvía los controles.

Respuestas:

16

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.

allquixotic
fuente
Gracias, aunque hay algunas suposiciones que podrían aclararse fácilmente. Definitivamente no quiero jugar en 1080p, de hecho 1280x720 @ 24fps es lo que estoy buscando en este momento y bajaría solo para poder hacer que funcione. La idea de captura parece interesante, pero ¿cómo controlaría el host desde eso y cómo es la latencia? Ah, y ni siquiera lo he probado con un juego todavía. Simplemente ejecutar un archivo de video de 320x240 para actualizar toda la pantalla parece convertir VNC en una presentación de diapositivas. Sé que debe haber algo que pueda hacer para sacar más provecho de una solución basada en software.
user1901982
De la nada, estimaría que la latencia es de uno o dos fotogramas más el tiempo de ping en circunstancias óptimas.
Hagen von Eitzen
2
@ user1901982 Toma PlayClaw y usa la función Virtual Webcam para convertir tu juego 3D en una cámara web. Luego, encuentre una forma de baja latencia para transmitir la cámara web virtual a través de la red.
Darth Android
Esa es ciertamente una idea interesante. He usado PlayClaw antes. La Virtual WebCam que proporciona es de calidad razonablemente rápida / decente para juegos en 3D. Sin embargo, todavía tiene que codificar la salida para comprimirla para la transmisión de red :)
allquixotic
2
@somequixotic PlayClaw hace eso, en realidad, y ese es su "reclamo a la fama": maneja la codificación / compresión en múltiples hilos (en oposición a Fraps, que haría la codificación en el hilo de renderizado del juego . Fraps podría haber cambiado esto recientemente, pero hace unos años, ese era el status quo). Si tiene la CPU, simplemente ponga PlayClaw en una compresión alta.
Darth Android
7

Puede usar la transmisión en casa desde steam. El mío funciona MUY bien con mi computadora de escritorio conectada a través de LAN Gigabit y la computadora portátil con 5 Ghz de CA. Solo recuerde pasar por la configuración y marcar la casilla para priorizar el tráfico de vapor durante la transmisión.

ayuda al azar
fuente
3

Hay algunas opciones más ahora. Si tiene una tarjeta gráfica Nvidia reciente, puede obtener los beneficios de la captura acelerada por hardware, sin el hardware adicional. Se llama "Gamestream". Puedes comprar uno de los dispositivos Nvidia que admiten el protocolo, o puedes descargar una aplicación de código abierto llamada "Moonlight" http://moonlight-stream.com

Dave Butler
fuente
Esto requiere Windows para el host, solo el cliente es multiplataforma. Solo quería señalar que para cualquiera que esté buscando una solución que no sea de Windows, como lo hice cuando encontré esta publicación.
robo
0

Steam Remote Play es definitivamente una opción. He estado jugando muchas veces, por ejemplo, Rocket League. Si tiene una buena conexión LAN en ambos lados, está listo para comenzar. Incluso puede enchufar el gamepad en la computadora portátil.

webo80
fuente