使用Java在Mac Os X上获取网络摄像头流

时间:2010-09-20 10:34:45

标签: java macos webcam isight

我想获取Macbook的网络摄像头流(集成的iSight网络摄像头)。

我使用Java,我对Objective-C一无所知,所以我正在寻找一个“全java”解决方案。我找到了一些课程示例,但它们是在2005年制作的,但它们不适用于我的系统。

4 个答案:

答案 0 :(得分:6)

我现在遇到同样的事情。我在我的项目中使用VLCJ,它在Windows,Linux Mint,Linux Ubuntu和Mac OSX Lion上运行良好。正如您可能已经读过的那样,VLCJ是一个围绕libvlc的java包装器,VLC播放器也使用它。

问题是,当您打开VLC播放器的捕获选项时,它会使用可用的摄像头(USB连接)填充组合框。但这是VLC播放器只为自己做的事情,它不会为你提供API。如果您没有使用VLCJ将相机的ID传递给它,VLC将使用系统的默认相机。我使用VLCJ从USB连接的相机或桌面流式传输到文件。

我必须找到一种在我的系统上“扫描”USB摄像头的方法,这是特定于操作系统的。

在Windows上我使用DirectShowJava

在Linux上,您只需要阅读/ dev / video *以获取可用的摄像头,如果您想向用户显示一些“用户友好名称”,您可以使用video4linux4java

而第3和你最感兴趣的那个我还没有尝试过,但我会尝试使用这个:stackexample

如果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下载。但请注意,这是开发版本,它崩溃了很多。

答案 1 :(得分:1)

答案 2 :(得分:0)

试过JMF?你可以开始here

答案 3 :(得分:0)

我发现OpenIMAJ核心视频捕获库在我的MacBook,Windows PC和Linux服务器上运行良好。缺点是它有很多依赖。

所以我修改了OpenIMAJ代码并制作了另一个不需要那些疯狂功能的软件包。您可以从我的网站获取我的代码和演示应用程序(开源bsd许可证):http://www.sleepingdumpling.com/blog/download/jvideoinput/

归功于OpenIMAJ和贡献者。

所以这不是不可能的。