7

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

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

4

4 回答 4

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

第三个也是你最感兴趣的一个我还没有尝试过,但我会尝试这个:stackexample

如果 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 感觉”。你可以从这里下载。但请注意,这是开发版本,它会崩溃很多。

于 2011-12-08T10:23:29.673 回答
1

查看QuickTime for JavaJava Bindings for VideoLAN

于 2010-09-20T11:43:48.243 回答
0

试过 JMF 吗?你可以从这里开始

于 2010-09-20T10:44:10.230 回答
0

我发现 OpenIMAJ Core Video Capture Library 在我的 MacBook、Windows PC 和 Linux 服务器上运行良好。缺点是它有很多依赖项。

So I modified OpenIMAJ code and made another package that doensn't need those crazy features. You can get my code and demo application (open source bsd license) from my site: http://www.sleepingdumpling.com/blog/download/jvideoinput/

credit goes to OpenIMAJ and contributors.

So it is not impossible.

于 2013-03-06T14:27:13.887 回答