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

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

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

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

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

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

在Windows上我使用DirectShowJava 。

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

第3和你最感兴趣的那个我还没有尝试但是我会试着用这个: 堆栈 , 例子 。

如果libvlc给出它会更好,因为它不需要再使用3个API(对于3个操作系统)并且每个都可以做VLCJ所能做的(仅在该平台上)并且我正在使用它们读设备。

编辑 :目前的官方VLC版本是1.1.x,它对Mac上的相机支持有限。 您只能从没有音频的Mac默认摄像头(iSight,FaceTime Built In)流式传输。 VLC 1.2.0将很快推出,它将有更好的Mac支持(了解其他连接的摄像头,桌面流,音频)。 你可以在VideoLAN论坛上看到我的主题 。 我为Mac下载了1.2.0-git版本的VLC,它看起来很酷,并且具有真正的“Mac感觉”。 你可以从这里下载。 但请注意,这是开发版本,它崩溃了很多。

查看用于Java的QuickTime for Java用于VideoLAN的Java绑定

试过JMF? 你可以在这里开始吧

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

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

归功于OpenIMAJ和贡献者。

所以这不是不可能的。

Interesting Posts