我正在开发 Java 桌面应用程序,但找不到录制网络摄像头视频的方法。我开始使用 Sarxos 库来检测连接的相机并预览您选择的任何相机。但是要进入示例中的视频录制部分,使用了 Xuggler,它已被弃用,甚至您都无法下载。我在某处读到使用 Humble-video,但我们唯一的示例是录制屏幕,没有相机...任何找到方法的帮助将不胜感激。
PS:我正在使用 JavaFX,但如有必要,我会切换到 Swing
最佳答案
这是一个 JavaCV 实现,也许可以帮助您:
import static com.googlecode.javacv.cpp.opencv_core.cvFlip;
import static com.googlecode.javacv.cpp.opencv_highgui.cvSaveImage;
import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.FrameGrabber;
import com.googlecode.javacv.VideoInputFrameGrabber;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
public class GrabberShow implements Runnable {
//final int INTERVAL=1000;///you may use interval
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);
int i=0;
try {
grabber.start();
IplImage img;
while (true) {
img = grabber.grab();
if (img != null) {
cvFlip(img, img, 1);// l-r = 90_degrees_steps_anti_clockwise
cvSaveImage((i++)+"-capture.jpg", img);
// show image on window
canvas.showImage(img);
}
//Thread.sleep(INTERVAL);
}
} catch (Exception e) {
}
}
}
您可以修改代码并能够定期保存图像并进行其余您想要的处理。
在这里您可以找到另一个教程,也可以作为一个选项: Java Swing Program for capturing webcam
关于java - 如何用 Java 录制网络摄像头视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40022117/