如何通过Java(跨平台方式)从网络摄像头获取视频和音频流?
例如,我们有一台配有3-4个USB网络摄像头的电脑;我们希望获得他们的流并使其在用户界面中可见。我们怎么能做这样的事情?我需要一个简单应用程序的代码,它可以在计算机上找到所有摄像头,然后让我们选择摄像头来进行操作。可以任何一个,请分享一个吗?
答案 0 :(得分:10)
使用java media framework JMF或FMJ
Here是JVM的一个例子
答案 1 :(得分:4)
我看到你对解决方案的评论需要是“纯粹的”java,但这真的“几乎”不可能。您将需要使用某种本机库来访问设备,并说明这一点;我建议你看看Xuggler作为你的解决方案。 Xuggler支持Windows,Mac和Linux,它们还提供处理音频和视频的示例代码。最后图书馆是免费的。 网络摄像头捕获示例:http://xuggle.googlecode.com/svn/trunk/java/xuggle-xuggler/src/com/xuggle/xuggler/demos/DisplayWebcamVideo.java
虽然Xuggle没有麦克风捕获示例,但您可以在邮件列表中找到示例,或者您可以使用此处找到的packet-mulitbroadcaster项目编写的代码:https://code.google.com/p/packet-multibroadcaster/
答案 2 :(得分:0)
您可以尝试my solution。它使用OpenCV捕获图像和jetty服务器以通过WebSocket传输它。该示例有三个类,很容易理解。 现在我只能发送视频,但我也在处理音频。
答案 3 :(得分:-2)
我使用flex。它可以相对容易地与java后端集成。
UPD:
需要纯Java
然后你应该考虑JavaFX解决方案。我不是javafx的大专家,我只编写了一些基本的测试应用程序,但我确信这是用纯java 解决所描述问题的现代方法。