1

There is a system written in c#/.net. The client make screen shots (1-3 times/sec) and sends the screen shots to a high performance server for processing.

I want to reduce network traffic.

  • previously I sent Png images data.
  • now I just check the important regions, and send these regions only if changes.

Now I wondering what would happen if you use lossless codecs. There is a few exiting lossless video codecs. But how can I use it from c#/.net , and send the stream?

I found a few AVI wrappers, like AForge.AVIWriter, but all save the result into file. (it's not possible to save it to a temporary file in client, because of lack of space)

dplante
  • 2,445
  • 3
  • 21
  • 27
becike
  • 195
  • 1
  • 8
  • 1
    Wouldn't using a lossless codec increase your file sizes and increase your network traffic? – Adam Lear Sep 06 '11 at 22:27
  • @Anna, PNG already is lossless, so there's no reason to think a lossless codec would increase network traffic. – Joe White Sep 06 '11 at 23:07
  • @Joe True, but then I'm really missing the point of this question. If a lossless format wasn't good enough before, why are we looking for more lossless formats now? – Adam Lear Sep 07 '11 at 00:24
  • 1
    Many lossy formats only send some frames ("keyframes") in full, and for intervening frames they send only deltas. If there was a lossless codec that did the same thing, it could save OP some work (since someone else already figured out how to get the deltas), and still reduce bandwidth. – Joe White Sep 07 '11 at 10:54

1 Answers1

0

It sounds like you're trying to re-create something like Remote Desktop (RDP protocol) or VNC (RFB protocol). Both of those protocols are lossless and send compressed deltas, so you might look into them and see if there are libraries that would take care of the details for you.

Joe White
  • 94,807
  • 60
  • 220
  • 330
  • I already checked both, and it's difficult to use for me: I wanted to send just specific regions (windows) and I want to send them region in different time. So there would be lot of non neccesary data over the wire. And i cant find .net version of server side for these protocols, and the existing servers are using full screen only. – becike Sep 07 '11 at 15:36