我需要使用Java来访问网络摄像头。 这就是我想做的事
访问网络摄像头
现在,用户可以看到网络摄像头的工作,因为他的脸出现在屏幕上看到(听到了一些库的存在不显示摄像头的视频输出)
当用户点击保存按钮,拍摄快照,并将其保存
我已经试过的方法可以做到这一点,从很久数。
- JMF - 现在是死
- FMJ - 现在是死的太
- VLCJ - 太多,因为我不是创造一个音乐/视频播放器,并期待它被安装VLC
- Xuggler - 太多了,辛勤工作
- JMyron - 没有工作
- JavaFX的 - 我认为它可以做到这一点,但好像它不能
我甚至感到满意,如果库是仅仅只有做上面所说的,因为这对我来说足够了。 但我希望它是简单了。 真正伟大的,如果它不使用的DLL,因为它不是独立的平台,如果它。 非常感谢,如果它可以检测相机,无需手动传递相机名称和其他信息如在VLCJ做(因为可能有成千上万的相机品牌,所以我不能在其中创建千个元素的列表)。 而且,我创建一个桌面应用程序,而不是Web应用程序。
如果你知道这样的库,请善待足以让我知道。 其他库(这可能不适合我所有的要求,但适合于基本要求),同时也欢迎。 请帮忙
这一问题已经在SO多次讨论。 这里有一些链接,让你开始:
SO: 在java中,从摄像头捕捉的图像?
SO: 什么是一个基于Java的应用程序捕获从使用的实时视频设备的图像的最佳方法是什么?
openCVF小程序: http://www.colorfulwolf.com/blog/2011/07/05/accessing-the-webcam-from-inside-a-java-applet/
配置: http://ganeshtiwaridotcomdotnp.blogspot.in/2011/12/opencv-javacv-eclipse-project.html
我认为你正在寻找的项目是: https://github.com/sarxos/webcam-capture (我是作者)
有一个例子如你所描述完全相同的工作 - 它运行后,窗口出现在哪里,你按下“开始”按钮后,你可以看到从网络摄像头设备的实时图像,并保存它,你点击“快照”后,到文件( 可用的源代码 ,请注意,在角落里FPS计数器可以被禁用):
该项目是可移植的(操作系统,Win7的,Win8的,在Linux,Mac,树莓派),并且不需要要在PC上安装任何额外的软件。
API是非常好的,简单易学。 例如如何捕获单个图像,并将其保存为PNG文件:
Webcam webcam = Webcam.getDefault();
webcam.open();
ImageIO.write(webcam.getImage(), "PNG", new File("test.png"));