AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

25 Screenshots pro Sekunde

Ein Thema von kurtm1 · begonnen am 22. Feb 2005 · letzter Beitrag vom 27. Feb 2005
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#31

Re: 25 Screenshots pro Sekunde

  Alt 23. Feb 2005, 12:37
Moin, moin

also Bildübertragung über Netz ist wohl das eigentliche Thema.
Ziel soll hier wohl sein, eine möglichst ähnliche Darstellung zum überwachten Rechner zu bekommen.

Unter TurboPascal konnte man direkt auf Vidooram zugreifen. Ähnlich wird hier der Weg auch sein
(Das Thema Treiberprogrammierung hatten wir aber schonmal). Letztlich wird man das letzte Ramabbild
im Rechner halten und die Differenz zum akutellen ermitteln. Jetzt muß man entscheiden ob es günstiger
ist, das Differenzbild oder das neue Vollbild zu komprimieren (Heuristik). Das Komprimat wird
dann verschickt. Das dürften wohl wesentlich weniger Daten sein als die 25 Einzelbilder. Wenn keine
Änderungen am Quellbildschirm gemacht werden, dann wird eben nichts übertragen. Altes Bild bleibt.
Festplatte ist übrigens nicht relevant, wenn es nur eine Überwachung oder Fernwartung ohne Speichern sein soll, wie bei vnc. Und das läuft bei Farbreduktion klasse, sogar noch mit ISDN über Internet. Das sowas nicht im Netz zum laufen zu bringen ist, da glaube ich nicht dran. Auch Pascal ist eigentlich flott genug dafür. Die Direktspeicherzugriffe und die effiziente Komprimierung sind da ein markantes Problem.

// Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Benutzerbild von elliot2extreme
elliot2extreme

Registriert seit: 6. Jun 2003
Ort: Mannheim
68 Beiträge
 
Delphi 7 Enterprise
 
#32

Re: 25 Screenshots pro Sekunde

  Alt 23. Feb 2005, 13:39
Hallo zusammen,

es gab mal ein Fernwartungsprogramm, welches in Delphi entwickelt wurde. Von diesem wurde auch der Quellcode veröffentlicht. Vielleicht kann dies bei der Lösung des Problems behilflich sein.

Webseite des Autors: www.netcontrolme.de hier gibt es auch den Sourcecode.

Gruß
Markus
Tastatur nicht gefunden, um fortzufahren drücken Sie bitte F1.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#33

Re: 25 Screenshots pro Sekunde

  Alt 23. Feb 2005, 14:27
Ich hab selbst mal sowas gemacht und ich kann nur davon abraten
Nach etwa spätestens 10-20 sek ist ein WIRKLICH GUTER PC in den Knien.
Jedenfalls wars bei mir so. Und dann noch übers Netzwerk......
Naja ich weis nicht ob das überhaupt möglich ist oder ob ich einfach nur wie immer vergessen hab Sachen freizugeben, die dann den Arbeitsspeicher zugemüllt haben ^^
Michael
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#34

Re: 25 Screenshots pro Sekunde

  Alt 23. Feb 2005, 18:22
Zitat:
Nach etwa spätestens 10-20 sek ist ein WIRKLICH GUTER PC in den Knien.
Warum nach der Zeit??

Zitat:
Naja ich weis nicht ob das überhaupt möglich ist oder ob ich einfach nur wie immer vergessen hab Sachen freizugeben, die dann den Arbeitsspeicher zugemüllt haben ^^
Daran wird´s liegen
Lukas
  Mit Zitat antworten Zitat
kurtm1

Registriert seit: 13. Dez 2003
348 Beiträge
 
#35

Re: 25 Screenshots pro Sekunde

  Alt 23. Feb 2005, 20:04
naja so ein Programm wäre auf jeden Fall vielleicht einmal ein Gemeinschaftsprojekt wert
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#36

Re: 25 Screenshots pro Sekunde

  Alt 23. Feb 2005, 22:57
Zitat von kurtm1:
naja so ein Programm wäre auf jeden Fall vielleicht einmal ein Gemeinschaftsprojekt wert
Ja, vielleicht wäre das besser.
Allerdings stellt sich anhand der obigen Beiträge die Frage anders:
Wenn solche Überwachungsprogramme auch über ISDN funktionieren, muss man das Programm so einrichten können, dass es nur ein Minimum an Daten verschickt und trotzdem ein möglichst genaues Abbild des zu überwachenden Computers gibt. Die Frage ist, wie geht das?
Dazu müsste man zuerst platzsparende Grafikformate zur Übertragung wählen (z.B. JPG statt BMP). Als nächsten Punkt könnte man, wie schon oft erwähnt, die Framerate runtersetzen. Dabei könnte man soweit gehen, dass man nur ein neues Bild überträgt, wenn sich auf dem Bildschirm auch wirklich etwas verändert hat.
Man könnte es auch auf die Spitze treiben und selbst bei Veränderung des Bilschirms nur die Teile des Bildschirmscreenshots übertragen, die auch verändert wurden. Allerdings dürften das ohne Komprimierung in den meisten Fällen auch noch zu viele Daten für eine ISDN-Verbindung sein. Deshalb könnte man auch einen abgeänderten Ansatz für die Grafikübertragung verwenden: statt die Grafiken als Pixelgrafiken zu übertragen, könnte man auch auf so eine Art "Pseudo-Vektorgrafik" umsteigen. Dabei werden nicht die neuen Screenshots verschickt, sondern nur solche Anweisungen wie "Zeichne in der oberen rechten Bildschirmecke den Mauszeiger neu" an den entfernten Computer geschickt, der diese Anweisungen dann in seinem Programm ausführt und somit das Bild aktualisiert.
Das hätte mehrere Vorteile: zum einen würde sich das Transfervolumen nochmals stark verringern; und zum anderen würde der Rechenaufwand beser auf beide Rechner verteilt werden und es somit auch möglich, dass das Programm auf langsamen Rechnern noch halbwegs flüssig läuft.
Das sind jetzt nur ein paar Gedanken von mir, und ich habe auch keine Ahnung, wie das in den oben angesprochenen Programmen realisiert wurde. Also sagt mir, wenn ich hier nur Unsinn geschrieben habe, aber vielleicht hilft es dem einen oder anderen weiter.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Wheelie

Registriert seit: 21. Okt 2003
Ort: Dresden
177 Beiträge
 
#37

Re: 25 Screenshots pro Sekunde

  Alt 23. Feb 2005, 23:20
Zitat von generic:
mach dir doch bitte nochmal gedanken über die datenmenge die du bearbeiten willst.

bei einer auflösung von
1280*1024=1310720 Bildpunkte
1310720*4=5242880 (32bit Farbtiefe=4 Byte)
5242880*25fps=131.072.000 Byte/sec

du willst also 131MB pro Sekunde verarbeiten.
ein aktueller PC schaft ca. 2000 mb/s (dual channel)
eine scsi-festplatte ca. 150 MB/s
ein 100MBit Netzwerk aus Erfahrung ca. 7 MB/s.

demnach wirst du deine 131 MB/s auf unter 7 MB/s komprimieren müssen.

Jetzt zu der CPU Power, du willst 131 MB/s aus dem Videopuffer kopieren, Komprimieren und dann noch zur Übertragung aufbereiten.
1 Terraherz Rechner werden erst in 24 Jahren auf den Markt kommen
Zur Farbdefinition reichen immer noch 3 Bytes (RGB): 1280 * 1024 * 3 = 3.932.160
15 FPS reichen denke ich auch völlig aus: 3.932.160 * 15 = 58.982.400

-> unkomprimiert also rund 60 MB/s, da du jedoch auch einen Screenshot dieser Auflösung nicht als Bitmap im Forum posten würdest, fällt das Datenaufkommen durch die Komprimierung jedes einzelnen Frames viel geringer aus. Im 100MBit-Netzwerk dürfte das alles sicherlich auch machbar sein. Trotzdem wäre eine auf tatsächliche Bildveränderungen basierende Lösung viel besser.
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#38

Re: 25 Screenshots pro Sekunde

  Alt 23. Feb 2005, 23:28
Zitat von Wheelie:
...
Zur Farbdefinition reichen immer noch 3 Bytes (RGB): 1280 * 1024 * 3 = 3.932.160
15 FPS reichen denke ich auch völlig aus: 3.932.160 * 15 = 58.982.400

-> unkomprimiert also rund 60 MB/s, da du jedoch auch einen Screenshot dieser Auflösung nicht als Bitmap im Forum posten würdest, fällt das Datenaufkommen durch die Komprimierung jedes einzelnen Frames viel geringer aus. Im 100MBit-Netzwerk dürfte das alles sicherlich auch machbar sein.
Trotzdem ist das noch zuviel, selbst für ein Netzwerk, bei 100MBit müsste man die rund 60MB auch noch auf 7-8 MB komprimieren. Deshalb ist die Idee mit dem (vollständigen) Screenshot also nicht das Wahre.

Zitat von Wheelie:
Trotzdem wäre eine auf tatsächliche Bildveränderungen basierende Lösung viel besser.
Meine Rede
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von maynard
maynard

Registriert seit: 22. Jun 2004
Ort: Deutschland
72 Beiträge
 
Delphi 7 Enterprise
 
#39

Re: 25 Screenshots pro Sekunde

  Alt 24. Feb 2005, 00:10
Tach...

Ich hab mir auch mal so ein Capture Tool geschrieben. Ich denke den Screen in einzelne (Rechtecke sind vorzuziehen) Bereichen einzuteilen, daran kommst du nicht vorbei. Je nach Leistungsfähigkeit des CPUs hab ich "Rechteck - Auflösung" eingestellt.

Einfach die die Hashwerte der neuen Bildbereiche mit den Werten des Alten abgleichen, die entsprechenden Teile senden und das neue Bild als altes Bild zwischenspeichern. Is kein Hexenwerk. Die Idee wie Binärbaum mir den "Pseudovektorgrafiken" hatte ich auch, wusste aber noch nicht genau wie ich das gut umsetzen kann.

Also auf meinem damaligen P4c Northwood und einem 100MBit LAN waren 12 - 18 Bilder pro Sekunden eigentlich drin ... halt zu Lasten des Hauptspeichers, der reichlich vorhanden sein sollte, weil sonst das Programm ausgebremst wird... die zu übertragende Datenmenge wird ja durch die Einteilung verringert. Komprimierung hilft auch, dauert aber etwas und bewirkt daher eine Verzögerung, heißt es kann passieren, dass der Client mit den Abspielen schon merklich hinterher is.

Viel Spass beim basteln ... hat mir richtig Spaß gemacht!
"Denkst Du dasselbe wie ich, Pinky?" - "Ich glaube schon, Brain, aber was ist, wenn das Huhn die Strumpfhosen nicht anziehen will...?"
http://www.programmierer-board.de/ph...fc628a1239.jpg
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#40

Re: 25 Screenshots pro Sekunde

  Alt 24. Feb 2005, 02:49
kann es sein, das man die repaint anforderungen von windows an die programme per hook oderso abfangen könnte und somit genau auf die repaint canvas'e zugreifen könnte und dann genau weis, welche bereiche neu gezeichnet werden(wurden) um so eine gezieltere direktere überwachung auf eine bild-veränderung zu realisieren ?

ich denke nicht, das VNC und konsorten haufenweise screenshots machen und die vergleichen (wie auch immer)

ich denke, da ist irgendwas angezapft, da wirklich haargenau die bereiche gerefreshed werden, die auch neu gezeichnet wurden via message
das kann man an den alten VNC versionen in kombination mit einem 10mbit halfduplex lan sehr gut beobachten

auch von einer framerate kann hierbei wohl nicht gesprochen werden, da es ereignisgesteuert ist, und keinen konstanten refreshzyklus hat.
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz