我试图直接在我的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'替换'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
答案 0 :(得分:2)
我使用Xuggle进行视频编码,它恰好包含了旧版本并且在类路径中。即使显示的链接来自较新的链接,它也使用较旧的链接。