我上周刚刚开始使用Java,所以我现在只是因为我需要学习很多东西而得到了基础知识(顺便说一句,如果有帮助我在Ubuntu 11.04上使用Eclipse)。但是我做了很多截屏,我在很多视频中显示我的网络摄像头。所以稍后我想创建一个只显示网络摄像头的简单应用程序。没别的了。
所以我现在问这个问题,这样我不仅会记住我的目标,而且当我觉得我已经准备好了,并且有信心继续努力时,我会知道该去哪里。
我不想要任何代码,但需要参考去哪里。我想只使用Java。虽然我的一位同事告诉我要调查FMJ和JMF。但是不知道这些是什么我认为它们是Java的附加组件,但是如果可能的话,我只想坚持使用Java。
此外,就像我说我还是Java的新手,我正在学习YouTube上的新闻教程(目前在http://www.youtube.com/watch?v=XqTg2buXS5o),所以如果你知道有任何其他资源来帮助像我这样的新Java程序员和其他人非常感谢。
答案 0 :(得分:6)
我使用了lti-civil,这对于视频捕捉似乎非常有效。
我在Windows和Linux上使用它,我没有在Mac上测试它,但它说它也在那里工作。
它不需要预先安装,因为它是一个jar和一个dll / so,可以使用Java应用程序下载,也可以通过支持本机库的JNLP webstart运行。
没有100%纯Java库可以捕获视频,因此所有选项(包括JMF)都需要本机组件(.dll或.so)。
答案 1 :(得分:3)
JMF是一个使用Medias的Java库。
Java比编程语言大得多,不要害怕使用它的库添加功能。
查看一些示例:http://www.mutong.com/fischer/java/usbcam/和http://www.java-forums.org/new-java/40115-capturing-video-webcam-jmf.html
答案 2 :(得分:3)
您可以使用Webcam Capture API项目中的即用型WebcamPanel
Swing组件(我是作者)。该项目是可移植的,适用于Windows,Linux,Mac OS的32位和64位架构,以及ARM等设备。 Raspberry Pi(armel和armhf)。
下面的示例代码将在JFrame
窗口内显示来自网络摄像头的图像(FPS速率可配置):
JPanel panel = new WebcamPanel(Webcam.getDefault());
JFrame window = new JFrame("Test webcam capture");
window.add(panel);
window.pack();
window.setVisible(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JAR可在Maven Central中使用,但如果您不使用Maven,您还可以下载单独的ZIP,其中包含所有必需的依赖项(所有必需的第三方JAR)。
答案 3 :(得分:3)
使用Marvin Framework的实现下方。该框架为实时视频处理提供了一组plug-ins。
package video.simpleVideoTest;
import javax.swing.JFrame;
import marvin.gui.MarvinImagePanel;
import marvin.image.MarvinImage;
import marvin.video.MarvinJavaCVAdapter;
import marvin.video.MarvinVideoInterface;
public class SimpleVideoTest extends JFrame implements Runnable{
private MarvinVideoInterface videoAdapter;
private MarvinImage image;
private MarvinImagePanel videoPanel;
public SimpleVideoTest(){
super("Simple Video Test");
// Create the VideoAdapter and connect to the camera
videoAdapter = new MarvinJavaCVAdapter();
videoAdapter.connect(1);
// Create VideoPanel
videoPanel = new MarvinImagePanel();
add(videoPanel);
// Start the thread for requesting the video frames
new Thread(this).start();
setSize(800,600);
setVisible(true);
}
public static void main(String[] args) {
SimpleVideoTest t = new SimpleVideoTest();
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void run() {
while(true){
// Request a video frame and set into the VideoPanel
image = videoAdapter.getFrame();
videoPanel.setImage(image);
}
}
}
答案 4 :(得分:0)
答案 5 :(得分:-1)
您可以使用java swings来使用它。
您可以在此博客上找到有关此内容的文章,geekscab.com 对不起,我不知道确切的网址,所以你必须搜索博客