Java中的FMJ视频捕获

时间:2011-03-30 19:29:53

标签: java video capture jmf fmj

我正在尝试从通过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的视频是如此令人头疼的问题

1 个答案:

答案 0 :(得分: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验证程序对其进行验证