FMJ网络摄像头捕获示例

问题描述 投票:6回答:3

我一直在搜索,但找不到如何使用FMJ捕获网络摄像头流的简单示例。有没有可以帮助我的教程或示例?

java webcam capture fmj
3个回答
2
投票

我已经在FMJ工作了一段时间,但没有找到很多以这两个例子开头的示例。我要做的是探索FmjStudio类,该类集成了网络摄像头功能并且非常简单。

对于鲍勃:

您想要的是FMJ。 FMJ将DataSource实现用于民用,以将其与JMF一起使用。我建议您转到http://fmj-sf.net/下载最新的源代码,并同时浏览FmjStudio,因为它使用Civil进行捕获。

对于花花公子:

[是的,您也可以使用JMF,但是用于JMF的相同代码最有可能与FMJ一起使用(也许更改了coupla),并且性能会好得多,特别是如果您需要各种不同的网络摄像头时使用您的软件。


1
投票

我知道这不是您想听到的,但是我已经使用JMF来完成此任务,并且效果很好。在线上有足够的示例,可以使一个简单的网络摄像头捕获应用程序轻松运行。如果您有兴趣,我会发布更多信息。


0
投票

以下代码将帮助您入门。

GlobalCaptureDevicePlugger.addCaptureDevices(); 
    Vector<CaptureDeviceInfo> audioCapDevList = CaptureDeviceManager.getDeviceList(null);
    if (audioCapDevList.size() != 0) {
        for (int i = 0; i < audioCapDevList.size(); i++) {
            audioCapDevInfo = audioCapDevList.elementAt(i);
            Format[] videoFormats = audioCapDevInfo.getFormats();
            System.out.println(audioCapDevInfo);
            if (audioCapDevInfo.getName().startsWith("vfw:")) { // assume the name of the webcam starts with vfw:
                for (int j = 0; j < videoFormats.length; j++) {
                    if (videoFormats[j] instanceof VideoFormat) {
                        currentFormat = (VideoFormat) videoFormats[i];
                        break;
                    }
                }
                System.out.println(currentFormat);
                if (currentFormat == null) {
                    System.err.println("Search for VideoFormat failed");
                    System.exit(-1);
                }
                audioCapDevLoc = audioCapDevInfo.getLocator();
            }

        }
    }

请确保将本机库(civil.dll和jdshow.dll)加载到JVM中。否则,您将得到一个java.lang.UnsatisfiedLinkError。以下代码可以为您完成这项工作。

    System.setProperty("java.library.path", "D:/fmj-sf/native/win32-x86/");
    Field fieldSysPath;
    try {
        fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths");
        fieldSysPath.setAccessible(true);
        fieldSysPath.set(null, null);
    } catch (Exception e) {
        e.printStackTrace();
    }
© www.soinside.com 2019 - 2024. All rights reserved.