Gibt es in X11Forwarding eine Option zum Löschen von Frames?

8

Ich verwende ein Computer-Vision-Modell auf einer kopflosen Remote-VM (Ubuntu 16.04) über X11Forwarding mit dem guten alten Putty und Xming als Windows X-Server.

Alles ist in Ordnung, aber es scheint, dass es keinen Frame-Drop gibt, wenn die Client-Server-Bandbreite nicht mithalten kann. Dies bedeutet, dass meine Anwendung verlangsamt wird und nur wenige Frames pro Sekunde rendert, wenn sie bei ausreichender Bandbreite Hunderte ausführen kann.

Gibt es eine Force Frame Drop- Option, die in die X11-Weiterleitung integriert ist, und wenn ja, wie schalte ich sie ein?

evilSnobu
quelle
4
Das X11-Protokoll hat keine Vorstellung von Frames und unterstützt daher kein Löschen von Frames (dh es gibt keinen Resynchronisationspunkt).
Simon Richter

Antworten:

9

Ich empfehle Xpra für diese Art von Anwendungsfall: Es bietet nicht nur die Möglichkeit, die Verbindung zu X-Anwendungen, die auf einem Remote-Host ausgeführt werden, zu trennen und erneut zu verbinden, sondern unterstützt auch eine Vielzahl von Bildcodierungen und Einstellungen für die Fensteraktualisierung , um ein anständiges Erlebnis zu bieten verschiedene Umstände.

Es hat einen nativen Windows-Client, daher sollte die Einrichtung einfach genug sein. Sie müssen es auch auf der Remote-VM installieren, aber das ist so einfach wie apt install xpraunter Ubuntu.

Stephen Kitt
quelle
Das sieht sehr vielversprechend aus, aber ich kann nicht scheinen, es an einen TCP-Port zu binden.
EvilSnobu
Stellen Sie eine Verbindung über SSH oder direkt her ?
Stephen Kitt
Mein Xorg war f ****. Es wurde behoben und jetzt ist alles in Ordnung. Diese Xpra-Sache ist wirklich gut, besonders wenn Sie auf HEVC (x265) -Codierung umschalten. Sehr sehr schön und nicht blockierend. Vielen Dank!
EvilSnobu
Ich kann Xpra nicht mehr empfehlen. Es ist wahrscheinlich die beste kostenlose Option, die es heute gibt.
wbkang
5

Nach diesem Stand der Frage , wie Aussehen X11Forwarding ist nicht die beste Option für Grafiken intesive - Anwendungen, wie das X11 - Protokoll nicht mit Bitmap - Zeichenleistung konzipiert wurde.

Grundsätzlich werden Zeichenanweisungen an das Netzwerk gesendet, was "alles gut" ist, wenn es sich um ein paar Fenster mit Text handelt, aber es ist offensichtlich zu viel für Millionen von Pixeln , die jeden Frame ändern, insbesondere wenn das Netzwerk eine hohe Latenz / Jitter / Paket aufweist Verlust.

Wie in der Antwort auf die genannte Frage vorgeschlagen, können Sie x2go ausprobieren und prüfen, ob es Ihren Anforderungen entspricht.

BEARBEITEN gemäß Kommentar

Wenn dies x2gonicht der Fall ist, können Sie versuchen, VNCwelche Funktionen zum Löschen von Frames verfügbar sind. Ich verwende x11vnczum Beispiel eine Verbindung zu meinem Desktop über eine Remoteverbindung, über x11vnc -display :0 -auth .Xauthoritydie eine Verbindung zu meinem Display hergestellt wird.

Ich weiß nicht, ob es funktionieren würde, Xmingaber Sie können es versuchen.

Herr Shunz
quelle
Leider ist der Windows-Port von x2go komplett kaputt, habe es schon ausprobiert.
EvilSnobu
In der Vergangenheit habe ich x2go auch mit einem Mac-Client ausprobiert und es aufgegeben.
Rui F Ribeiro
3

Das reine X11-Protokoll eignet sich nicht gut zur Gewährleistung der Übertragung und viel über SSH.

Ich empfehle NoMachine. Es kann Bandbreitenkomprimierung und Netzwerkoptimierung durchführen. Es hat auch Clients für Mac, Windows und Linux.

PS. NoMachine hat die kostenlose und die kostenpflichtige Version. Ich habe immer das kostenlose benutzt.

Siehe NoMachine

Für virtuelle Desktops (Fall a) ist der X11-Vektorgrafikmodus (früher als "Lightweight" -Modus bezeichnet) standardmäßig aktiviert. Diese Methode reduziert die Bandbreitennutzung (und die HW-Anforderungen, da sie weniger CPU-intensiv ist) auf Client und Server, indem das X11-Protokoll mithilfe von Komprimierungstechniken, Round-Trip-Unterdrückung und Cache-Algorithmen optimiert wird.

Der X11-Vektorgrafikmodus ist praktisch, um einen Verlust der Bildqualität zu vermeiden. Er kann nützlich sein, wenn Sie mit herkömmlichen GUIs oder großen Textmengen arbeiten. Er wird jedoch nicht für Multimedia-Inhalte oder Anwendungen mit vielen grafischen Effekten empfohlen.

Weitere Informationen zum X11-Vektorgrafikmodus: https://www.nomachine.com/AR02L00779

Für Verbindungen zum physischen Desktop oder wenn der X11-Vektorgrafikmodus für virtuelle Desktops deaktiviert ist (Fall b), implementiert NoMachine das Anzeigeprotokoll mithilfe einer Kombination aus Video- und Bildcodierung, die auf Standardcodecs und einer Reihe von von NoMachine selbst entwickelten Techniken basiert.

Es implementiert auch eine netzwerkadaptive Anzeigequalitätstechnik. Dies bedeutet, dass NoMachine automatisch versucht, die Anzeigequalität zu verringern, wenn festgestellt wird, dass das Netzwerk überlastet ist. Zweck dieses Mechanismus ist es, die Sitzung über alle verschiedenen Netzwerkbedingungen hinweg ansprechbar zu halten.

Weitere Informationen zum Finden der am besten geeigneten Konfiguration für das Abspielen von Multimedia-Inhalten:

https://www.nomachine.com/AR01M00832

Rui F Ribeiro
quelle
Ist das "Kostenlos wie in Closed-Source-Werbung für unsere kostenpflichtige Option" oder "Kostenlos wie in Stallman"?
Pipe
@pipe Irgendwo in der Mitte, denke ich. Ich habe die kostenlose Version für den persönlichen Gebrauch mit großer Zufriedenheit verwendet, war auch seitlich beteiligt und kenne große Projekte, die die kostenlose Version verwendeten. Die kostenpflichtige Version kann anscheinend einige Probleme beim Anpassen von Dingen in komplexeren Umgebungen ersparen, als mir erfahrene Leute gesagt haben.
Rui F Ribeiro