{螢幕操作捕獲的想法研究}--意在搜集想法和資料~~初學的你也來坐坐吧..

YP2002CN 2003-03-13 05:37:52
希望有時間看的,看完後,多提出您的想法.多謝,多謝~~
最近在研究螢幕捕獲的技術.意在實現將操作過程廣播出去.實現方法:
1.DirectX 2.GDI.追求流暢.最好1秒能給抓上10frames ....
難點:
1.最快速的獲取顯存資料.
我發現用Dx捕獲發生在讀取顯存資料(即複製的時候)花費90%以上操作時間.因為數據量太多.而且可能有代碼轉換的問題.從測試花費時間看,並不比GDI來得迅速.
2.網路傳輸.如何用最快的方式
3.壓縮算法.採用jpeg壓縮其實也是個佔用時間的問題.比較煩.
4.顯示技術.自然是充分利用DirectDraw的顯示技術.
5.如何在多線程實現下,節省cpu操作時間,或者說為了追求偵數,如何儘量減少消息循環.
我這裡框架都已經實現完成.但是需要追求速度...實在慢.測試過GDI和DirectX方式廣播.效果都不是很好.最好的是在我這個雙線卡上每40ms/1frame.(1024*768*16/8).可是換別的機器,那就很不穩定.
我比較過好幾個捕獲程序.如camrec,Vnc,ServerWindow(codeproject所下),還有目前我認為在這方面做得最好的香港sun-tech公司(他們做的東西,實時性非常強.網路操作基本上不存在延時).camrec,和Vnc,SevWin的程序都有比較大的延時.運行情況上看50%以上資源.都不是可取的,只是可接受的.vnc和serwin用的是GDI捕獲.從理論上講,要實現高速性能.這是不可用的.唯一讓我可用的東西就是vnc的區域變化判斷.
這裡想重點討論sun-tech公司的東西.它確實使用DirectX實現.而且螢幕採用全屏顯示用到了頁面翻轉.他的畫圖(windows的).實時很強.感覺是同時操作.研究後才發現
原來是捕獲鼠標附近的塊.然後發送小單位量的數據...而對於窗口變大變小的操作.從顯示情況看是一塊一塊從下往上貼.而不是一幅圖塊整個放.應該用的是分頁技術,或雙緩衝顯示.而且突出的優點是顏色變化,對他的軟件操作速度並沒有多大影響.他在瀏覽網頁方面,即當我們移動滾動條的時候.非常流暢..整體感覺上和hardward實現差別不是特別大.但卻比vnc等一類要高出許多.還有一點,操作的時候,即便是全屏改變其系統資源耗用率也就是4%-30%.平均在10%..實在讓人佩服.
我對於他們怎麼去區分是鼠標事件和窗口變化之間的關係比較難以理解.從總體上說
通過區域塊變化來捕獲應該是最佳方式.
如果你看完了,希望你能針對某點提出意見,什麼代碼,經驗.那是最好的..或者來up一下,喝杯茶.
Thanks!



...全文
35 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
slough 2003-03-18
  • 打赏
  • 举报
回复
up
kent23 2003-03-18
  • 打赏
  • 举报
回复
好象PCANYWHERE的屏幕捕捉做的挺好,感觉很快啊,请问是怎么实现的
matchboy 2003-03-18
  • 打赏
  • 举报
回复
netmeeting中 不同的form如果被上层窗口覆盖了,就不传递被覆盖的内容(传递剩余内容),只有在拖动顶层窗口的时候才需要重新传递背景窗口内容
SeekTruth 2003-03-18
  • 打赏
  • 举报
回复


TO freedom2000(自由人)

写Driver直接截获VIDEO输出吗。
librastar2001 2003-03-17
  • 打赏
  • 举报
回复
gz
up
freedom2000 2003-03-17
  • 打赏
  • 举报
回复
要写Driver的,我正在做,欢迎交流,QQ:9006476
godsmile 2003-03-15
  • 打赏
  • 举报
回复
gz
up
YP2002CN 2003-03-15
  • 打赏
  • 举报
回复
cyberjacky(狼心)
车牌识别,好像清華大學出了關於這方面的資料,對於捕獲,我也只是個初學,所以才來詢問有經驗的人士的成功做法.
jennyvenus()
Hook是一定要做的.:)
用户 昵称 2003-03-15
  • 打赏
  • 举报
回复
他们可以hook鼠标和键盘或者其他的事件啊。另外图像实时传输好像有标准协议吧,如h.323等。
用户 昵称 2003-03-15
  • 打赏
  • 举报
回复
不懂
xiaohu9711 2003-03-14
  • 打赏
  • 举报
回复
他们应该不是整图的操作,因为图像太大了存在内存的倒换问题。我在做大图像处理的时候是分块来做的,时间就好多了。你是不是可以这样?我想那个香港的公司可能也是这样的。。。
ZhouBoTong 2003-03-14
  • 打赏
  • 举报
回复
MS 的 net Metting 是怎么做的?
感觉速度挺快的。
YP2002CN 2003-03-14
  • 打赏
  • 举报
回复
怎麼就沒有人來玩呢?

winphoenix 2003-03-14
  • 打赏
  • 举报
回复
upup
cyberjacky 2003-03-14
  • 打赏
  • 举报
回复
up.......
我是刚刚才涉足编程实践的,快要毕业,毕业论文是车牌识别方面的,所以常来这里看看大家的想法, 发现这里有很多高手,我的毕业设计比这个贴子说的应该要简单很多,可是我还是觉得无从高手......楼主应该是有丰富经验的人了,希望能给我指点一下思路,谢谢!
YP2002CN 2003-03-14
  • 打赏
  • 举报
回复
xiaohu9711(小胡)
多謝.
我和你的想法是一樣的.大圖也是用分快.香港那個確實是這樣.
做圖像的時候,儘量用小區域.
香港那公司,主要在鼠標操作上,有比較多的處理.我基本上定下如何去處理了.

交個朋友.QQ:8802311
uhlan 2003-03-13
  • 打赏
  • 举报
回复
up~

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧