2010-09-20 112 views
6

我想獲取我的Macbook(集成iSight網絡攝像頭)的網絡攝像頭流。在Java中獲取網絡攝像頭流Mac Os X中

我使用Java,並且我對Objective-C一無所知,所以我正在尋找一種「全Java」解決方案。我找到了一些類的例子,但它們是在2005年製作的,它們不適用於我的系統。

回答

5

我現在自己也遇到了同樣的事情。我正在爲我的項目使用VLCJ,它在Windows,Linux Mint,Linux Ubuntu和Mac OSX Lion上完美運行。正如你可能讀過的,VLCJ是一個圍繞libvlc的java包裝器,VLC播放器也使用它。

問題是,當您打開VLC播放器的捕捉選項時,它會使用可用攝像頭(USB連接)填充組合框。但這是VLC播放器本身所做的事情,它不會爲您提供API。如果您不使用VLCJ將某個相機的ID傳遞給它,VLC將使用系統的默認相機。我使用VLCJ從USB連接的攝像機或桌面傳輸文件。

我必須找到一種方法來「掃描」我的系統上的USB攝像頭,這是特定於操作系統的東西。

在窗口上我使用DirectShowJava

在Linux上,你只需要讀的/ dev /視頻*可用的相機,如果你想顯示給用戶一些「友好用戶名」,你可以使用video4linux4java

和第3和一個你最有興趣我還沒有嘗試過,但我會嘗試這個:stack,example

如果libvlc可以做到這一點,它會更好,因爲它不需要使用3個API(用於3個OS),並且它們每個都可以做VLCJ可以做的(只在該平臺上),而我使用它們只是爲了讀取設備。

編輯:目前的官方VLC版本是1.1.x,並且它在Mac上對相機的支持有限。您只能通過Mac的默認相機(iSight,FaceTime Built In)進行流式處理,無音頻。 VLC 1.2.0將很快推出,它將有更好的Mac支持(瞭解其他連接的相機,桌面流,音頻)。你可以在VideoLAN論壇上看到我的thread。我爲Mac下載了1.2.0-git版本的VLC,它看起來非常酷,並且具有真正的「Mac感覺」。您可以從here下載。但請注意,這是開發版,它崩潰了很多。

+0

謝謝你,太棒了! – 2011-12-08 12:29:24

+0

@Matthieu我剛剛編輯我的答案與一些Mac OS X的具體細節,希望它會省下你一些時間:) – vale4674 2011-12-08 14:52:04

0

試過JMF?你可以開始here

+1

它似乎是Windows或Solaris的攝像頭。沒有提及OS X或Mac – 2010-09-20 10:51:45

+2

JMF已過時 – 2011-01-25 05:17:16

1
+0

我讀過「新版本還忽略提供組件以顯示Quicktime的捕捉設備(如網絡攝像頭或攝像機)的輸入視頻預覽」。看起來Java並不是蘋果真正關心的......另請參見:http://onjava.com/pub/a/onjava/2003/10/29/qtj-returns.html?page=last(在「其他變化「)。至於VideoLAN,它似乎無法從網絡攝像頭捕捉。 – 2010-09-20 14:21:20

+0

是的,我不知道QTJava已被棄用,對不起:http://lists.apple.com/archives/quicktime-java/2008/Jun/msg00018.html – trashgod 2010-09-20 20:42:04

+0

VLC應該能夠從網絡攝像頭捕獲.. .file - >打開捕獲設備 – rogerdpack 2011-08-11 13:45:24

0

我發現OpenIMAJ核心視頻採集庫,它適用於我的MacBook,Windows PC和Linux服務器。缺點是它有很多依賴關係。

因此,我修改了OpenIMAJ代碼,並製作了另一個不需要那些瘋狂功能的軟件包。您可以從我的網站獲得我的代碼和演示應用程序(開放源代碼bsd許可證):http://www.sleepingdumpling.com/blog/download/jvideoinput/

功勞歸功於OpenIMAJ和貢獻者。

所以這不是不可能的。