Bildschirm stream



  • Hi,
    Ich möchte gerne das ich den Bildschirm von einem anderen PC beobachten kann, so wie in VNC. Mein Problem ist nun wie ich das mit dem Bild mache, ich sollte ja am besten in einer sec. 15bilder aufnehmen(damit es nicht Ruckelt wenn er die mau bewegt) und diese mit udp verschicken nur wie nehme ich bilder vom gesammten Bildschirm auf? Geht das mit libgpeg? Es sollte auch möglichst unter Linux und Windows funktionieren.

    MFG ReduX



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hat den niemand eine Idee?
    Mir macht wie gesagt nur das aufnehmen des Bildschirmes ein Problem, den Rest habe ich schon.
    Würde mich auch über ein paar Links freuen.

    MFG ReduX



  • Sag einmal...
    Du erwartest doch nicht ernsthaft, daß wir dir eine Methode erfinden, um auf allen X-Servern und auf allen Windows-Versionen Screenshots zu machen, oder?



  • ReduX schrieb:

    Hat den niemand eine Idee?
    Mir macht wie gesagt nur das aufnehmen des Bildschirmes ein Problem, den Rest habe ich schon.
    MFG ReduX

    LOL.

    Sorry, aber das ist einer der echt extremen Mißbräuche des Wortes "nur" 😉 Versuchen wir es mal mit ein wenig Mathe:

    Gehen wir von einem Bildschirm 1280x1024 aus und 8 bit Farbtiefe (256 Farben)

    das Sind dann 1280 * 1024 * 8 Byte = 10485760 Byte = 10 MB Bilddaten pro Bild.
    Bei 15 Bildern pro Sekunden kommen wir auf 150 MB/s reinem Datenstrom (bei 256 farben)

    Zum Vergleich: Ein Gigabit Netzwerk (1 Gbit/s) schafft 125MB/s eher noch etwas weniger. Eine DSL Leitung schafft um die 400 kBit upstream, das sind gerade mal 50KB/s

    Was bleibt ist der Ansatz die Bilddaten in Echtzeit zu komprimieren um die Datenmenge zu reduzieren (->mpeg), das aber ist alles andere als trivial.

    Und natürlich solch irrsinnige Forderungen wie 15 bilder pro sekunde... 1 Bild pro sekunde wäre erstmal ein guter Ansatz.

    Ich denke Tools wie VNC, teamviewer und Co tauschen immer nur die Teile des Screenshots aus die sich auch geändert haben, aber selbst Profitools schaffen bei bewegten Bildern vielleicht 1 Frame pro sekunde.



  • klar nur schrieb:

    Ich denke Tools wie VNC, teamviewer und Co tauschen immer nur die Teile des Screenshots aus die sich auch geändert haben...

    richtig. alles andere wäre auch ziemlicher quatsch.
    Redux: zum abfangen des bildschirminhalts bieten sich ein 'mirror driver' (windows kernel mode) oder 'hooks' (windows user mode) an. bei den hooks musst du ein 'bitblt' in eine 'dib section' machen, die binärdaten komprimieren und dann übers netz schicken.
    🙂


Anmelden zum Antworten