¿Existe una opción de caída de cuadros en X11Forwarding?


8

Estoy ejecutando un modelo de visión por computadora en una máquina virtual remota sin cabeza (Ubuntu 16.04) sobre X11 Reenvío con buen viejo Putty y Xming como mi Windows X Server.

Todo está bien, pero parece que no hay caída de cuadros si el ancho de banda cliente-servidor no puede mantenerse, lo que significa que mi aplicación se ralentiza y solo genera unos pocos cuadros por segundo cuando puede hacer cientos si el ancho de banda es suficiente.

¿Hay una opción de caída de cuadro forzado integrada en el reenvío X11, y si la hay, ¿cómo la activo ?


44
El protocolo X11 no tiene una noción de tramas y, por lo tanto, no admite la caída de tramas (es decir, no hay un punto de resincronización).
Simon Richter

Respuestas:


9

Recomiendo Xpra para este tipo de casos de uso: no solo proporciona la capacidad de desconectarse y volver a conectarse a aplicaciones X que se ejecutan en un host remoto, sino que también admite una variedad de codificaciones de imagen y configuraciones de actualización de ventanas para proporcionar una experiencia decente en Diferentes circunstancias.

Tiene un cliente nativo de Windows, por lo que debería ser lo suficientemente fácil de configurar. También necesitará instalarlo en la VM remota, pero eso es tan fácil como apt install xpraen Ubuntu.


Esto parece muy prometedor, sin embargo, parece que no puedo vincularlo a un puerto TCP.
evilSnobu

¿Te estás conectando con SSH o directamente ?
Stephen Kitt

Mi Xorg estaba jodido. Lo arregló y ahora está todo bien, esta cosa de Xpra es realmente buena, especialmente cuando cambias a la codificación HEVC (x265). Muy, muy agradable y sin bloqueo. ¡Gracias!
evilSnobu

No puedo recomendar Xpra más. Es probablemente la mejor opción gratuita que existe hoy en día.
wbkang

5

Según esta pregunta relacionada , parece que X11Forwarding no es la mejor opción para aplicaciones intensivas de gráficos, ya que el protocolo X11 no se diseñó teniendo en cuenta el rendimiento del dibujo de mapas de bits.

Básicamente, envía instrucciones de dibujo a la red, lo cual es "muy bueno" si estamos hablando de un par de ventanas con texto, pero obviamente es excesivo para millones de píxeles que cambian cada cuadro, especialmente cuando la red experimenta una alta latencia / jitter / paquete pérdida.

Como se sugiere en la respuesta a la pregunta mencionada, puede probar x2go y ver si se ajusta a sus necesidades.

EDITAR según el comentario

Si x2gono funciona, puede probar VNCcuál parece tener capacidades para soltar cuadros. Por ejemplo, lo uso x11vncpara conectarme a mi escritorio desde una conexión remota con la x11vnc -display :0 -auth .Xauthorityque se conecta a mi pantalla.

No sé si funcionaría, Xmingpero puedes intentarlo.


Lamentablemente, el puerto de Windows de x2go está completamente roto, ya lo probé.
evilSnobu

En el pasado también probé x2go con un cliente Mac, y me di por vencido.
Rui F Ribeiro

3

El protocolo X11 puro no se presta bien para garantizar la transmisión, y mucho sobre SSH.

Recomiendo NoMachine. Puede hacer compresión de ancho de banda y optimización de red. También tiene clientes para Mac, Windows y Linux.

PD. NoMachine tiene las versiones gratuitas y de pago. Siempre usé el gratis.

Ver NoMachine

Para los escritorios virtuales (caso a), el modo de gráficos vectoriales X11 (anteriormente conocido como modo "ligero") está habilitado de forma predeterminada. Este método reduce el uso del ancho de banda (y los requisitos de HW porque requiere menos CPU) tanto en el cliente como en el servidor al optimizar el protocolo X11 mediante técnicas de compresión, supresión de ida y vuelta y algoritmos de caché.

El modo de gráficos vectoriales X11 es conveniente para evitar la pérdida de calidad de imagen y puede ser útil cuando se trabaja con interfaces gráficas de usuario tradicionales o gran cantidad de texto, pero no se recomienda para contenidos multimedia o aplicaciones con muchos efectos gráficos.

Más sobre el modo de gráficos vectoriales X11: https://www.nomachine.com/AR02L00779

Para conexiones al escritorio físico o cuando el modo de gráficos vectoriales X11 está deshabilitado para escritorios virtuales (caso b) NoMachine implementa el protocolo de visualización usando una combinación de codificación de video e imagen basada en códecs estándar y una serie de técnicas desarrolladas por NoMachine.

También implementa una técnica de calidad de visualización adaptativa de red. Esto significa que NoMachine intentará reducir automáticamente la calidad de la pantalla cuando detecte que la red está congestionada. El propósito de este mecanismo es mantener la sesión receptiva a través de todas las diferentes condiciones de red.

Más sobre cómo encontrar la configuración más adecuada para la reproducción multimedia:

https://www.nomachine.com/AR01M00832


¿Es eso "Gratis como en un anuncio de fuente cerrada para nuestra opción paga" o "Gratis como en Stallman"?
tubería

@pipe En algún lugar en el medio, creo. Utilicé la versión gratuita para uso personal con mucha satisfacción, también participé lateralmente y conozco grandes proyectos que utilizaron la versión gratuita. Aparentemente, la versión paga puede ahorrar algunos problemas al personalizar las cosas en entornos más complejos de lo que me dijeron las personas más experimentadas.
Rui F Ribeiro
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.