# BufferedImages streamen



## microtux (23. Feb 2008)

Hallo!

Ich möchte ein Programm entwickeln, welches den Bildschirminhalt eines PCs über das Netzwerk zu einem anderen streamt. Dazu verwende ich java.awt.Robot.createScreenCapture(), bekomme damit ein BufferedImage und will dieses mit ImageIO.write() an einen OutputStream schicken. Auf der Gegenseite läuft ein Programm, welches dieses BufferedImage ausliest und ein JPanel auf einem JFrame immer neu zeichnet.

Nun zu meinem Problem: Beide Seiten - Viewer und Server - arbeiten mit Threads -> Server schickt laufen Bilder, Viewer empfängt andauernd Bilder. Nur sind diese nicht synchron, was bedeutet, dass der Server nach einiger Zeit "schneller" wird und mehr Bilder sendet, als der Viewer empfangen kann. Wie kann ich nun diese Threads synchronisieren? Muss ich extra einen Rückkanal einführen, der nach jedem empfangenen Image ein OK zurückschickt, oder geht das auch einfacher?

Vielen Dank schon einmal,
mfG microtux


----------



## Wildcard (23. Feb 2008)

Da ein großteil des Bildes immer konstant bleibt oder sich nur wenig ändert, sind Bilder generell wenig effizient.
Du solltest asynchron Differenzen von Bild zu Bild verschicken und in regelmäßigen Abständen ein komplettes Bild zum synchronisieren. 
Ein wenig Literatur zum Thema Streaming Codecs ist sicherlich zu empfehlen.


----------



## Guest (23. Feb 2008)

Hast du Literatur-Tipps für mich? Und wie stelle ich es an, dass ich nur die Differenzen übertrage?

Vielen Dank für deine Antwort!
MfG microtux


----------

