每一帧都传输整张图片当然不行,即便是一张图片100kb,要达到20帧/秒的话传输带宽就需要2MB/S。
所以现在的远程桌面软件都是只传输差异部分。首先截第一张图,整张传过去,然后截第二帧图的时候,和第一帧对比,找出有差异的部分,只传输有差异的部分(同位置颜色不同的像素点)。由于桌面上的画面变化都较小,大部分时候只有鼠标的移动变化,差异部分会很小,实际传输的数据量很小。如果再把数据用算法进行压缩再传输就更美妙了
所以现在的远程桌面软件都是只传输差异部分。首先截第一张图,整张传过去,然后截第二帧图的时候,和第一帧对比,找出有差异的部分,只传输有差异的部分(同位置颜色不同的像素点)。由于桌面上的画面变化都较小,大部分时候只有鼠标的移动变化,差异部分会很小,实际传输的数据量很小。如果再把数据用算法进行压缩再传输就更美妙了
解决方案 »
- 懂内存映射文件FileMapping的请进!
- 如何修改程序系统图标的位置
- 调用写字板后,获得写字板的文件保存路径?
- mysql c api 处理事务 (急)
- ☆★☆在VC下用ODBC连接数据库,写入数据库正确,但读出不正确☆★☆
- 在Win2k下,有什么办法可以禁止某一Service调用一特定的API,象是ExitWindowsEx之类的。
- 不知CObject定义中的 "static CRuntimeClass* PASCAL _GetBaseClass();" 有什么作用?
- 具体比较一下C/S与B/S的优缺点?如果用B/S开发的话用什么工具开发好些?因为每天要有大量的数据传输(一天大约几十兆))。。。。。。。
- 谁能讲解sourcesafe的使用?或者能给一些资料。
- 请问如何处理进程被关闭时的动作???你会吗?(如果你做过系统安全方面的软件你不进来就不够意思)
- 视图客户区显示图片,滚动条如何设置?
- SDL在窗口改变大小后,画面卡住?
JPG已经差不多是压缩极限了,很多时候前后两帧JPG传输过去,大部分都是冗余数据,因为这两张图片上仅仅只是鼠标位置不同或是窗口上的文字变了一下,解决问题的关键是尽量避免冗余数据的传输。
录制为视频再传输很难做到画面的实时性。搞这个不花点功夫是不行的,网上有很多VC写的开源的远控、远程桌面软件,比如gh0st,可以看一看别人是怎么实现的。