2

我试图直接在我的 Java 代码中调用 FFMPEG(在 Playframework 下运行!)。最终产品将在 Linux/Debian 发行版上运行,但我首先需要在我的 Mac 上进行测试(我不知道它是否可以在 Debian 上运行)。

我尝试执行简单的代码:

Process pr = Runtime.getRuntime().exec(new String[]{"bash","-c", "ffmpeg"});

或更简单:

Process pr = Runtime.getRuntime().exec("ffmpeg")

或使用 ProcessBuilder:

Process pr = new ProcessBuilder("/opt/local/bin/ffmpeg").start();

我得到的是错误代码 133,但我找不到这意味着什么。在终端中,该命令给出正常输出。我也可以用例如“ls -la”替换“ffmpeg”并获取目录列表。但是我不知道ffmpeg不起作用的问题是什么。

有人有任何线索吗?谢谢!

更新:我查看了错误流。这些是我得到的错误。它如何在终端中工作,但在使用 Java 时却不行?

14:43:19,619 DEBUG ~ FFMPEG: dyld: Library not loaded: /opt/local/lib/libogg.0.dylib
14:43:19,619 DEBUG ~ FFMPEG:   Referenced from: /opt/local/bin/ffmpeg
14:43:19,619 DEBUG ~ FFMPEG:   Reason: Incompatible library version: ffmpeg requires version 9.0.0 or later, but libogg.0.dylib provides version 6.0.0
4

1 回答 1

2

我使用 Xuggle 进行视频编码,它恰好包含一个旧版本并且在类路径中。尽管显示的链接来自较新的,但它使用的是较旧的。

于 2012-05-01T19:42:31.367 回答