我正在尝试直接在我的 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,但我找不到这意味着什么。 在终端中,该命令给出正常输出。我还可以将“ffmpeg”替换为例如'ls -la' 并获取目录列表。但不知道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
最佳答案
我使用 Xuggle 进行视频编码,它恰好包含旧版本并且位于类路径中。尽管显示的链接来自较新的链接,但它使用的是较旧的链接。
关于java - 在Java中使用FFMPEG(在Mac上开发),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372439/