如何在我的Maven项目中导入FFMPEG库?

时间:2019-01-16 18:38:11

标签: java maven spring-boot ffmpeg executable-jar

我有一个Spring-boot项目,我在其中使用ffmpeg库,我正在通过ProcessBuilder(在终端/ cmd中)执行ffmpeg命令,并且一切正常,因为我已经在MacOS上安装了ffmpeg 。当我尝试生成一个jar并在未安装ffmpeg的另一台机器上运行它时,将执行该命令,除ffmpeg commodnds之外,其他一切正常。将库导入到我的Maven项目是否有任何更改或以某种方式使用它? 添加库的外部jar是个好主意吗?

提前谢谢!

2 个答案:

答案 0 :(得分:0)

我不确定Maven是否为此提供了一个插件,但是我将添加一个Shell脚本来安装ffmpeg,让我们将其称为resources / scripts / myscript.sh,在该脚本中首先确认它尚未安装,然后使用wget下载所需的东西,进行安装,然后继续使用您的应用程序。 您可以首先在应用中调用此脚本

答案 1 :(得分:0)

您要部署到Mac(与台式机相同)或Windows / Linux的服务器吗?我问的原因是因为ffmpeg是二进制应用程序,必须将其编译到特定平台。

您可以在Maven中包含ffmpeg,但是在运行之前,需要先对其进行编译。我在这里找到了一个Maven存储库,尽管我不知道它的工作方式:https://mvnrepository.com/artifact/com.tagtraum/ffmpeg/4.0.0。您还可以尝试compiling from source(尤其是如果您要尝试进行一些非标准的编码/解码),这是一个涉及更多的安装。

我要做的是通过单独的安装软件包安装ffmpeg,最好是通过OS的软件包管理系统安装ffmpeg;对于Linux,这将类似于:

(Ubuntu)

sudo apt-get install ffmpeg

(CentOS)

sudo yum install epel-release
sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
sudo yum install ffmpeg ffmpeg-devel

有关安装的更多信息,请参见: https://www.ostechnix.com/install-ffmpeg-linux/

有时这些软件包可能不是最新的或缺少您要尝试执行的操作,在这种情况下,您可能需要从源代码进行编译。

编辑:您说您正在使用Windows。我对部署到Windows不太熟悉,但是该站点上有可用的ffmpeg Windows软件包(从ffmpeg主页面链接):https://ffmpeg.zeranoe.com/builds/。我建议单独安装,而不是尝试与Java应用程序打包。该页面可以帮助您:https://windowsloop.com/install-ffmpeg-windows-10/