2011-03-09 57 views
3

我們正在考慮用Java編寫一個軟件,它可以在運行時記錄監視器在一段時間內監視什麼。你有關於如何有效捕獲顯示器輸出的建議嗎?Java:捕獲屏幕上的內容的視頻

所需的CPU越少,我們可以捕獲屏幕的頻率就越高,而且我們可以生成更平滑的視頻,而不會干擾正在運行的其他應用程序。

如果複製出屏幕截圖部分不太困難,Java中的現有開源程序將會起作用。我希望它不需要調用另一種編程語言。我們會看到。

回答

3

我不確定你是否需要一個框架。

查看java.awt.Robot類的文檔,特別是createScreenCapture方法。很好用的OpenCV

http://java.sun.com/javase/6/docs/api/java/awt/Robot.html

+0

這看起來不錯。謝謝。我測試了這個例子,它的工作:http://www.devx.com/tips/Tip/15158 – 2011-03-09 19:35:23

+0

措施。據傳是緩慢的。 – 2011-03-09 20:35:43

+0

@Thorbj ..:我能夠每秒獲得三張以上的截圖,並且它似乎並沒有減慢PC的速度。但是,Vista上的每個屏幕截圖都會閃爍一次。這是不可取的。 – 2011-03-09 21:59:39

0

Java在Robot類中具有截取屏幕截圖的方法,但是它並不適用於創建視頻。

是否有任何理由不能鏈接到平臺特定的屏幕捕獲程序?

+0

性能是主要關注的問題。如果我們要開發這個程序,它將在Java中。我們想知道它的表現如何,以及如何做到最好。 – 2011-03-09 19:22:12

1

你可以捕捉幀,並把他們的視頻(我這樣做是爲了運動跟蹤高級設計項目學校)有充分理由OpenCV的樣本量好。但我只熟悉它的C++綁定,而不是Java(但也有C,Python庫)

它是java嗎?因爲使用OpenCV捕捉視頻非常容易(這是一個簡單地捕獲幀緩衝區的問題)

對不起,我希望我有一個Java相關的答案.....但圖我會鐘聲反正導致OpenCV非常方便使用。

編輯:http://code.google.com/p/javacv/

JavaCV包含包裝到C級的呢?可能值得一看。

+0

什麼C + +語法將被用來捕獲截圖? JavaCV的作者說他*「故意決定保留儘可能多的原始語法」*,因此C++語法可能是有用的。 – 2011-03-09 22:15:23

2

其中一個最好的java框架是Monte Media Library,但首先看看this來提出這個想法。

讓我知道它是否有效:)