0

我正在尝试从通过 USB 连接的网络摄像头捕获视频,但由于某种原因 FMJ 无法加载或找到注册表文件。当我尝试运行我的程序时,每次调用 FMJ 函数都会产生警告:

[time] net.sf.fmj.utility.Registry <init>
WARNING: Problem loading JMF registry: org/jdom/JDOMException. Using Defaults

因此,它无法识别网络摄像头并且程序失败。相同的程序适用于 JMF,但为了使其跨平台,我正在迁移代码。我已经卸载了 JMF,但我不明白它为什么要加载 JMF 注册表。运行 fmjregistry.bat 时,我还收到以下错误:

FINE: PlugInUtility: Unable to register plugin net.sf.fmj.ffmpeg_java
FINE: PlugInUtility: Unable to register plugin net.sf.fmj.theora_java.NativeOggParser
FINE: PlugInUtility: Unable to register plugin com.omnividea.media.parser.video.Parser
FINE: PlugInUtility: Unable to register plugin com.omnividea.media.codec.video.NativeDecoder
FINE: PlugInUtility: Unable to register plugin com.omnividea.media.codec.video.JavaDecoder

以上都是java.lang.ClassNotFoundException

请帮忙,用java做视频真是头疼

4

1 回答 1

1

这个问题可能有点老,但对于那些面临同样问题的人(比如我),这里是答案。

FMJ 要求将 JDOM(而不是 JDOM2)包含在类路径中,因为它使用它来读取

C:\Documents And Settings\[user]\.fmj.registry.xml 

此文件包含来自 FMJ 注册表的设置。JDOM jar 位于您从其主页下载的 FMJ 包内的 libs 目录中。您可以复制它并包含在您的项目构建路径中,或者如果您是 Maven 用户,则可以添加依赖项:

<dependency>
    <groupId>org.jdom</groupId>
    <artifactId>jdom</artifactId>
    <version>1.1.3</version>
</dependency>

不要忘记添加其他必需的库;]

如果不是这种情况,那么还有其他可能的选择:

  1. 您的程序没有读取此文件的权限,或者
  2. 此文件内容的 XML 语法格式错误(XML 不正确) - 在这种情况下,要查找 XML 代码中的错误,您可以使用在线提供的免费 XML 验证器之一对其进行验证
于 2012-07-08T22:30:06.507 回答