2010-01-11 64 views
5

我想知道GotoMeeting這樣的軟件如何捕獲桌面。我可以使用GDI進行全屏(或逐塊)捕捉,但這對我來說似乎太浪費了。此外,我也研究了鏡像設備,但我想知道是否有更簡單的技術或圖書館。像GotoMeeting這樣的軟件如何捕獲桌面的圖像?

我需要快速高效的桌面屏幕捕捉(10p15 fps),我最終將轉換爲視頻文件並與我的應用程序集成,以便通過網絡發送捕獲的Feed。

謝謝!

回答

1

是的,拍攝屏幕截圖並找到之前捕獲的差異將是一種很好的方式,通過僅發送跨越來減少傳輸帶寬,當然這與視頻編碼技術類似塊。

仍然意味着你需要做一個捕獲加額外的處理來獲得差異,即對它進行編碼。

-1

什麼語言?

.NET提供了Graphics.CopyFromScreen

+1

嗯,我想要一個語言中立的答案,更像是關於API調用的技術討論。 CopyFromScreen會進行一點一點的傳輸,就像我剛纔提到的那樣,對我來說有點浪費。在不太強大的筆記本電腦上每秒鐘執行10-15次這樣的操作,可能會導致筆記本電腦電量顯着下降,或者兩者兼而有之。所以需要更有效率的東西。 – verma 2010-01-11 22:18:09

+0

如果有更高效的方法,你不認爲核心.NET庫會使用它嗎?如果你想要一個「更高效」的方式,它將涉及不捕獲屏幕本身。 – 2010-01-11 22:34:36

+1

嗯,我不是說.NET的CopyFromScreen調用效率不高,我只是說對於我的具體情況我認爲它很浪費。我不想捕捉整個屏幕,只是想知道屏幕一點也沒有改變。 – verma 2010-01-12 19:13:06

0

我要麼:

  • 進行全屏幕捕獲,然後 進行圖像處理隔離 部分已經改變 節省帶寬的畫面。

- 或 -

+0

全屏圖像處理,嗯..我一直孤立的圖像塊和尋找三角洲,但我想我避難所沒有真正把它當成圖像處理。這意味着我可以使用可編程圖形處理器從CPU中取出一些負載並進行快速增量檢測。真棒。 – verma 2010-01-12 19:09:53

1

通過使用鏡像設備,您可以同時獲得更新後的Rectangle和指向Screen的指針。更新的矩形指針指向所有正在改變的矩形,這些矩形是頻繁改變的改變矩形。過濾出一些矩形,因爲在一秒鐘內可以得到1000個矩形。

0

我得到20到30幀每秒使用內存驅動程序我顯示在我的圖片框,但是當我得到全屏更新然後這些幀被緩衝。因爲圖片框很慢,並且改變了我自己的組件,所以這是一些快速但不是很好的全屏以及一般我全屏顯示10 fps。我在渲染幀時面臨着問題,我可以每秒捕捉20到30幀,但是我的渲染在一秒內是8到10個全屏幕幀。如果任何人有全屏幕渲染幀請重播我。