<< 征集 : 屏幕传输最快的代码 >> 大家一起讨论提高
注意:用以下两种方法的人可以不参加讨论
---------------------------------------
1抓屏 2 JPG 3 发送
1抓屏 2 zlib压缩 3 发送
---------------------------------------
注意:用以上两种方法 的人请不要参加讨论
解决方案 »
- Delphi+Access+ADO能负担多大的并发查询呢?
- 诚聘:接口开发工程师(Delphi)(北京)
- 请问如何读取一个远程超文本文件的源代码?
- 调查(不容错过哦):Delphi是否可以做基于Soap/webservice的大型应用(110分!)
- 如何将话筒的声音保存成WAV文件啊???~~
- 一个简单的搜索问题
- 谁有telnet包文的格式以及加密算法
- d6下如何装TEmbeddedWB ?
- 如何确定图形中画线问题
- fsMDIChild窗体之间变量转换的问题
- 请教数据恢复的高手,我想知道delete以后的数据怎么恢复!
- 为什么 imageen 安装后 ,运行时说缺少 ieword.duc ????????????? 急!!!!!
点对点的速度还可以,800*600/16bit,能基本达到实时(约半秒)无奈的是NMStrm
好象不能支持网络广播,这下就苦了我了,得知NMUDP能很容易实现广播,于是改用
NMUDP,程序如下,但是速度太慢了,要一两分钟才能传一帧图片这可如何是好,救
救小弟我吧! (bmp(936k)->stream(lzw,90k), 100M局域网)哪位大侠,帮我优化
一下,或者提供另一个可行的方案,或者是提供一个更快,压缩比更高的流压缩单元
(分数在http://www.delphibbs.com/delphibbs/dispq.asp?lid=794044给出)
//发送部分
var
tp: array[0..5]of Char;
ss,ls:integer;//sendsize,leftsize
wid,cid:dword;
mspt: TPoint;
buf:array[0..bs-1] of char;//bs=2048;
begin
//传输前的初始工作
ls:=0; stm.Clear; ssm.Clear;
tp:='SrcCap';
NMUDP.SendBuffer(tp,6);
repeat
if ls>0 then begin//数据没发完
if ls>bs then ss:=bs else ss:=ls;
ssm.ReadBuffer(buf,ss);
ls:=ls-ss;
NMUDP.SendBuffer(buf,ss);//将数据发到6711
end
else begin//数据已发完,重新截屏
BitBlt(bmp.Canvas.Handle,0,0,sw,sh,dc,0,0,SRCCOPY);
stm.Clear; ssm.Clear;
bmp.SaveToStream(stm);
LZ.CompressToStream(stm.Memory,ssm,stm.Size);
stm.Clear;
ls:=ssm.Size;
end;
Application.HandleMessage;
until EndBtn.Enabled=false;
end;
//接收部分
var tp: string;
begin
stm.Clear;
NMUDP.ReadBuffer(buf,NumberBytes);
tp:=Copy(buf,0,6);
if tp='SrcCap' then begin
ssm.Clear;
Exit;
end;
stm.Write(buf,NumberBytes);
stm.Position:=0;
ssm.CopyFrom(stm,NumberBytes);
stm.Clear;
if NumberBytes<bs then begin//数据已读完
ssm.Position:=0;
LZ.DeCompressToStream(ssm.Memory,stm,ssm.Size);
bmp.LoadFromStream(stm);
ssm.Clear;
BitBlt(MainFm.Canvas.Handle,0,0,800,600,bmp.Canvas.Handle,0,0,SRCCOPY);
end;
Application.HandleMessage;
end;
但是我发现国外的同类软件速度可以达到30幅/妙注意:用以下两种方法的人可以不参加讨论
---------------------------------------
1抓屏 2 JPG 3 发送
1抓屏 2 zlib压缩 3 发送
---------------------------------------
注意:用以上两种方法 的人请不要参加讨论
继续讨论,希望高手加入
如果是整屏处理,一定要使用帧间压缩。
我看你是嫉妒,有本事拿点真东西来
===================================================== if not(你的嫉妒心理太强) then you = 搞错了'帧'的概念;
=====================================================
在里面我免费给你上一课,告诉你什么是'帧'!
一'帧'是指一副完整的图像!
特别是那些用 分块 或者 分线 方法进行屏幕传输的人
他们说接收到了一个数据包就说 是一'帧'
他们那是需要如果个数据包才能算是一'帧'.
pcAnywhere的极线是30'帧'/妙.
那些人号称100的,不是自己的基础知识太差,就是在做虚假广告.
===================================================== if not(你的嫉妒心理太强) then you = 搞错了'帧'的概念;
=====================================================
在里面我免费给你上一课,告诉你什么是'帧'!
一'帧'是指一副完整的图像!
特别是那些用 分块 或者 分线 方法进行屏幕传输的人
他们说接收到了一个数据包就说 是一'帧'
他们那是需要若干个数据包才能算是一'帧'.
pcAnywhere的极限是30'帧'/妙.[官方测试]
那些人号称可以达到100的,不是自己的基础知识太差,就是在做虚假广告.
我所指的10帧/妙 是指的是从 对方抓屏 到 我可以看见一副完整图像 的全过程!
补充一下 : 对方抓屏-对方处理-网络传输-我方处理-我方显示 这才叫做一帧. 那些没有搞懂的人,现在 可以再学习一下
关于以bmp抓图为前提的方法,本人的确提高到了世界领先水平[不想和你们再谈论这个问题了]但是我想知道mpeg4的方法,有源代码吗???
谁用DirectX抓全屏的代码?
xzhifei(饭桶超人( 谁有VNC的delphi版本的代码 ,主要是Hook部分