【问题标题】:Java-Processing Issue with GStreamerGStreamer 的 Java 处理问题
【发布时间】:2016-02-17 14:02:07
【问题描述】:

我正在使用 Processing 3.0 和/或 eclipse 与 Processing 插件。 我正在尝试使用基于GStreamer 的处理视频库来上传/播放视频。 当我在 Processing 和 Eclipse 中运行草图时,一切正常。但是,如果我导出应用程序,则视频功能不适用于 windows 版本(OSX 可以正常工作)。

日志如下:

Exception in thread "Animation Thread" java.lang.UnsatisfiedLinkError: Could not load library: gstreamer
 at org.gstreamer.lowlevel.GstNative.load(GstNative.java:53)
 at org.gstreamer.lowlevel.GstNative.load(GstNative.java:43)
 at org.gstreamer.Gst.<clinit>(Gst.java:101)
 at processing.video.Video.initImpl(Unknown Source)
 at processing.video.Video.init(Unknown Source)
 at processing.video.Movie.initGStreamer(Unknown Source)
 at processing.video.Movie.<init>(Unknown Source)
 at Shot_Position_Video.draw(Shot_Position_Video.java:259)
 at processing.core.PApplet.handleDraw(PApplet.java:2402)
 at processing.awt.PSurfaceAWT$12.callDraw(PSurfaceAWT.java:1527)
 at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:316)

这是我上传视频的那一行:

at Shot_Position_Video.draw(Shot_Position_Video.java:259)

代码是:

myMovie = new Movie(this, Video_address); 

有什么想法吗?我遇到了很多关于 jna.jar 和其他东西的部分解决方案,但我无法找到解决这个问题的方法。

即使建议使用其他库而不是 Gstreamer,也将不胜感激。

谢谢!

M.

【问题讨论】:

  • 如何导出应用程序?导出的结果是什么(什么样的文件)?你是如何运行该文件的?
  • 嗨凯文!此日志来自我从 eclipse 获得的可执行 .jar 文件。如果我直接从处理中导出,那么我有两种不同的行为:如果我使用相同的操作系统导出应用程序,那么它可以工作。如果我从 Mac 导出到 Win,它不会。

标签: java eclipse video processing gstreamer


【解决方案1】:

这样想:GStreamer 库有两个依赖项:Java 代码和本机代码。

您在类路径中包含 Java 代码方面。由于您要从 eclipse 中导出一个可运行的 jar,因此该类路径会包含在您导出的 jar 中。

但是,这包含本机代码。这通常包含在一个单独的文件中(通常是 .dll 文件),并且 eclipse 不知道如何将它自动包含在导出中。

由于直接指向本机库文件的设置,或者因为代码在已知位置查找本机文件,因此从 eclipse 和 Processing 运行正常。但是,当您将其导出为 jar 时,这些设置会丢失。

因此,您需要弄清楚 GStreamer 原生库文件在哪里。然后,您要么需要确保它位于正确的位置(可能在 jar 旁边?),要么需要在启用 -Djava.library.path="path/to/your/native.lib" 设置的情况下运行 jar。

一旦你开始工作,你就可以使用像JarMatey 这样的工具来创建一个自解压jar 来为你处理这一步。 (注:我是 JarMatey 的作者。)

【讨论】:

  • 感谢 Kevin,我预编译了库并添加了它(win 和 OsX),现在它可以工作了!
猜你喜欢
  • 2020-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多