java - 在Java中使用FFMPEG(在Mac上开发)

标签 java playframework ffmpeg

我正在尝试直接在我的 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/

相关文章:

Bash:显示选定的输出,不打印不必要的输出

c# - 在 Uno 平台上合并音频和视频

java - Spring Boot OAuth2 不重定向到 facebook

java - IndexOutOfBoundException 使用 java.util.Vector

java - 如何使 session /缓存变量可用于我的 main.html 模板?

intellij-idea - IntelliJ IDEA 和 PlayFramework 模块

macos - 如何通过 ffmpeg OSX 使用 hevc/h265 编解码器对视频进行编码

java - java中原始类型char的值指的是哪个Unicode表?

java - Rest Api异常处理

scala - 如何在 Play! 中保持单独的开发、测试和生产数据库2 框架?