网络传输图象,如何才能加快图象显示的速度使其能达到实时显示的效果(150分)

  • 主题发起人 主题发起人 Diny
  • 开始时间 开始时间
D

Diny

Unregistered / Unconfirmed
GUEST, unregistred user!
我要做一个网上教学类的软件,需要实现将教师机上的屏幕图象实时传输到学生机的屏幕上。我使用抓教师机上屏幕bmp的方式,可以使图象传输。但现在问题是,显示速度太慢,跟不上教师机的显示速度。规定要使用UDP控件。
不知谁有办法,希不吝赐教,不胜感激。
本人为delphi初学者,请多帮忙。分不多,150分以谢。
 
唉,您的题目和内容跟本对不上号么!

有软件,叫PCAnyWhere,是干这用处的。可以通过网络,把一台机器的操作
显示都反应到另一台机器上。
 
实时压缩与解压,delphi提供zlib
不要传bmp试试看jpg
 
习习,一台机器挂多个显示器就可以乐.
 
我已经将bmp转为jpg了,可还是慢。我测试了一下,传一幅图竟需要
6-7秒。我不能用其他软件,这个程序主要用UDP控件。
 
塞爱开开,挂多台显示器?接个投影仪也可。
 
我看了以前的问题,好象没有人能够很好的解决这个问题。
我觉的没有必要这么死板,能实现要求就行何必非要用UDP.
(不管黑猫白猫能抓住老鼠的就是好猫)
 
多人接受答案了。
 
Diny:
你好!

PC Anywhere主要是用于遥控一台计算机,
当你在1对1的情况下, PC Anywhere
是你的最佳选择, 但我想你该不会只有
一个学生, 所以, 你可能还是要Delphi
来解决这个问题.

我估计你的问题主要是: 屏幕的分辨率太大(如800*600)导致
1. 占用太多的CPU时间做压缩处理;
2. 压缩后的文件尺寸大, 增加了传输的时间.

我曾做过试验:
用P-II 300 的机子, 连续把多个大小为320*240的bmp -> jpg,
测试结果为:
平均每个bmp->jpg用时大约不到100ms,
大小为7k左右.

所以, 我建议你:
1. 如果你的教学软件是非全屏运行的
建立一个TBitmap的对象做为缓冲区, 然后调用Canvas.CopyRect
把有需要的部分拷贝下来, 放到另一个TBitmap中, 再对该TBitmap
bmp->jpg的转换工作;
2. 全屏运行的情况下
在form中放一个TImage对象, 把AutoSize设为false, Strech设为
true, Hight, width 分别设为320, 240. 先把抓到的图像放入
TImage中, 再放到另一个TBitmap中后对该TBitmap做bmp->jpg的转
换工作;
3. 适当把jpg的压缩率调低;


由于不能从贴子中得到更多的信息, 只能把我想到的部分写出来,
希望对你有所帮助

祝一路顺风!
 
我也有类似的问题,你在屏幕捕捉的时候是怎么抓到鼠标的,我用获取桌面的HANDLE的方法,
截取屏幕的时候鼠标的图象就截不到,不知道怎么办。请帮忙,谢谢。求你了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部