Image 在Java中访问web摄像机的最佳方法
我需要使用Java访问网络摄像头。这就是我想做的Image 在Java中访问web摄像机的最佳方法,image,camera,webcam,java,Image,Camera,Webcam,Java,我需要使用Java访问网络摄像头。这就是我想做的 存取网络摄像机 现在用户可以看到网络摄像机工作,因为他的脸在屏幕上是可见的 (听说有些LIB不显示网络摄像头的视频输出) 当用户单击“保存”按钮时,拍摄快照并保存它 很长一段时间以来,我已经尝试了很多方法来做到这一点 现在它死了 FMJ-现在它也死了 VLCJ-太多了,因为我没有创建音乐/视频播放器,它希望安装VLC Xuggler-工作太多太辛苦 杰米隆-不起作用 JavaFX-我以为它可以做到,但似乎不行 我甚至对图书馆只做上面提到的事情感到
如果你知道这样的图书馆,请告诉我。其他库(可能不适合我的所有需求,但适合基本需求)也很受欢迎。请帮助这已经讨论了很多次了。以下是一些让您开始学习的链接: 因此: 因此: openCVF小程序:
配置:我想你正在寻找的项目是:(我是作者) 有一个示例与您描述的完全相同-运行后,窗口出现,在您按下“开始”按钮后,您可以从网络摄像头设备中看到实时图像,并在单击“快照”后将其保存到文件中(请注意,角落中的FPS计数器可以被禁用): 该项目是可移植的(WinXP、Win7、Win8、Linux、Mac、Raspberry Pi),不需要在PC上安装任何其他软件 API非常好学。示例如何捕获单个图像并将其保存到PNG文件:
Webcam webcam = Webcam.getDefault();
webcam.open();
ImageIO.write(webcam.getImage(), "PNG", new File("test.png"));
可能有成千上万的摄像机?真正地你是为保安公司写这封信还是什么?此外,一个包含数千个元素的列表也不错——你可以在用户界面上对它进行过滤,或者让它以某种方式进行搜索。@corsiKa:不,我的意思是,如果我要把它交给其他人,我不能每次都修改程序,给出他们的相机名称。你知道,应该有一种方法可以与所有(或至少是一系列)相机品牌配合使用。在VLC中,我们不传递摄像机名称,而是识别它。事实上,这就是我的意思。谢谢你的回答。那么,你是在建议javaCV?还有一个问题,为什么大多数JavaCV文章建议安装“微软Visual C++可再分发软件包”?只是因为我们需要获取DLL或其他东西?@Bartosz,这不是唯一本地的吗?如何将数据直接传递给另一个客户端以进行网络摄像头?@Pacerier,您可以使用IP摄像头驱动程序从远程网络摄像头获取数据(如果摄像头支持JPEG或MJPEG,源代码中提供了演示),也可以通过网络摄像头Streamer(非常有限但可以工作的网络服务器,提供MJPEG流)从本地摄像头公开图像。源代码中还有一个示例演示了如何使用xuggler将图像帧流式传输为h.264(不过只是概念证明)。@BartoszFiryn,iTalki、Google Helpout、clarity.fm、LiveNinja等就是这样工作的吗?既然几乎每个防火墙都会阻止流量,除非它的http(s)?@Pacerier,我不处理延迟和带宽,因为这个库不打算通过internet进行流式传输。请查看项目页面和/或如果您有任何其他问题,请随时打开新的票证,这样我们就不会用不必要的评论来滥发stackoverflow。这个库实际上似乎可以工作(在Linux上测试)。移植到JavaX