每一帧都传输整张图片当然不行,即便是一张图片100kb,要达到20帧/秒的话传输带宽就需要2MB/S。
所以现在的远程桌面软件都是只传输差异部分。首先截第一张图,整张传过去,然后截第二帧图的时候,和第一帧对比,找出有差异的部分,只传输有差异的部分(同位置颜色不同的像素点)。由于桌面上的画面变化都较小,大部分时候只有鼠标的移动变化,差异部分会很小,实际传输的数据量很小。如果再把数据用算法进行压缩再传输就更美妙了

解决方案 »

  1.   

    2楼的那个方法是可以做的,但是做起来算法不好搞也不好实现。我的思路是想办法再压缩图像,然后接收到图像生再还原,可以用JPEGLIB,或者ffmpegf或zlib,
      

  2.   

    用的jpeglib将bmp转jpg,还是比较大,50多kb
      

  3.   

    160kb应该不算大了,我们做电子白板程序,有很多多达到上百K的,因为jpeg是有损压缩,压缩比已经很高了,压缩不了了
      

  4.   

    现在几乎所有的远控软件都是只传输每一帧的差异部分,这已经是一种成熟、普遍的做法了。
    JPG已经差不多是压缩极限了,很多时候前后两帧JPG传输过去,大部分都是冗余数据,因为这两张图片上仅仅只是鼠标位置不同或是窗口上的文字变了一下,解决问题的关键是尽量避免冗余数据的传输。
    录制为视频再传输很难做到画面的实时性。搞这个不花点功夫是不行的,网上有很多VC写的开源的远控、远程桌面软件,比如gh0st,可以看一看别人是怎么实现的。
      

  5.   

    jpg压缩是最基本的办法,其次就是将桌面划分为X * Y格,对比上一次的单元格是否变化最后只发送变化的单元格就行了,这样也会节省很多带宽
      

  6.   

    差异传输太复杂,最后使用FFMPEG多媒体库,编码h264传输~