我想编写一个程序,可以使用Java 语言通过我的网络摄像头捕获视频,即实时视频流。我找到了一些关于这个主题的线程,但问题是如何让我的程序独立于操作系统,比如如何在 32 位和 64 位操作系统上捕获视频。
请帮我解决这个问题,我做这份工作的时间很短。另外,如果有人对此主题有一些了解,请在此处发布其链接..谢谢。
我想编写一个程序,可以使用Java 语言通过我的网络摄像头捕获视频,即实时视频流。我找到了一些关于这个主题的线程,但问题是如何让我的程序独立于操作系统,比如如何在 32 位和 64 位操作系统上捕获视频。
请帮我解决这个问题,我做这份工作的时间很短。另外,如果有人对此主题有一些了解,请在此处发布其链接..谢谢。
由于 j2se 中没有可用于从网络摄像头捕获视频的类,因此您需要 JMF 或 JavaCV 等外部库来执行相同操作。
要安装 JavaCV,您将在以下链接中找到说明:
一种。ganeshtiwaridotcomdotnp.blogspot.in链接
湾。code.google.com链接
从摄像头实时捕捉视频的代码:
import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.FrameGrabber;
import com.googlecode.javacv.VideoInputFrameGrabber;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
import static com.googlecode.javacv.cpp.opencv_core.cvFlip;
class GrabberShow implements Runnable
{
IplImage image;
CanvasFrame canvas = new CanvasFrame("Web Cam");
public GrabberShow() {
canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}
@Override
public void run() {
FrameGrabber grabber = new VideoInputFrameGrabber(0); // 1 for next camera
try {
grabber.start();
IplImage img;
while (true) {
img = grabber.grab();
if (img != null) {
cvFlip(img, img, 1);// l-r = 90_degrees_steps_anti_clockwise
canvas.showImage(img);
}
}
} catch (Exception e) {}
}
}
public class Main
{
public static void main(String[] args)
{
GrabberShow gs = new GrabberShow();
Thread th = new Thread(gs);
th.start();
}
}
希望这可以帮助。