BufferedImages streamen

Status
Nicht offen für weitere Antworten.
M

microtux

Gast
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

Top Contributor
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.
 
G

Guest

Gast
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
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben