1

I'm currently working on some software which captures your monitor image and sends it over to clients over the internet. So far I have it working in my local area network but when I go to test it over the internet, hardly any of the images get through to the client.

I am using Lidgren for my networking. At the moment, I get a Bitmap from the screen, convert it to a JPEG with 30 quality, G-zip it and send it on its way. Each image is about 80KB in size, and I try to send 10 images a second to the client. Now that's like a 7mbit upload connection required, mines is only 2mbit.

So basically, is anyone aware of any compression libraries or techniques which will dramatically decrease the file size of each image. This might be completely impossible but I thought that I would give it a go.

Any help is much appreciated, Thanks!

Jamie
  • 130
  • 1
  • 4
  • 14
  • 1
    Have you tried reducing the dimensions of the images? – ChrisF Jan 21 '12 at 23:37
  • No I haven't, but I would like to try and send the image in the resolution of the screen, although I guess this is kind of hard. I could try reducing it a bit. – Jamie Jan 21 '12 at 23:43
  • Well, I think it's that or getting a better connection :) – ChrisF Jan 21 '12 at 23:45

1 Answers1

4

Do you really need to send the whole frame each time? Could you not just send what has changed between the current and the previous frame and then apply these changes to the client frame to bring it up to date? This should be pretty quick assuming the server isn't watching a video or some-such. This answer suggests this is what both RDP (Microsoft) and VNC use for remote desktop viewing.

See https://stackoverflow.com/a/4098515/171703 and https://stackoverflow.com/a/1876848/171703 for some ideas on how to do this.

Community
  • 1
  • 1
akiller
  • 2,462
  • 22
  • 30