无法检索本机文件ffmpeg-amd64.exe

时间:2016-09-26 05:34:15

标签: java audio video ffmpeg

我正在尝试将视频转换为音频。这就是为什么,我使用以下代码:

File source = new File("E:\\Shunno - Khachar Bhitor Ochin Pakhi.mp4");
        File target = new File("E:\\output.mp3");
        AudioAttributes audio = new AudioAttributes();
    audio.setCodec("libmp3lame");
    audio.setBitRate(new Integer(128000));
    audio.setChannels(new Integer(2));
    audio.setSamplingRate(new Integer(44100));
    EncodingAttributes attrs = new EncodingAttributes();
    attrs.setFormat("mp3");
    attrs.setAudioAttributes(audio);
    Encoder encoder = new Encoder();
    try
    {
        encoder.encode(source, target, attrs); 
    }
    catch (IllegalArgumentException | EncoderException e)
    { 
    }

但是我收到以下错误:

Sep 26, 2016 11:28:29 AM it.sauronsoftware.jave.DefaultFFMPEGLocator copyFile
SEVERE: Could not get native library for ffmpeg-amd64.exe
Exception in thread "main" java.lang.RuntimeException: Cannot retrieve native file ffmpeg-amd64.exe
    at it.sauronsoftware.jave.DefaultFFMPEGLocator.copyFile(DefaultFFMPEGLocator.java:139)
    at it.sauronsoftware.jave.DefaultFFMPEGLocator.<init>(DefaultFFMPEGLocator.java:80)
    at it.sauronsoftware.jave.Encoder.<init>(Encoder.java:105)
    at Convert.main(Convert.java:29)

如何解决此错误?请帮我 。

1 个答案:

答案 0 :(得分:2)

错误很明显:找不到ffmpeg。

因为您对ffmpeg的一些Windows路径here is the windows binary进行了硬编码。我建议下载x64静态版本。因为这只是一个你需要关心的文件。

如果您需要其他平台,请查看download site

在二进制文件ffmpeg.exe所在的子目录ffmpeg-amd64.exe中的zip文件中。现在您需要将其重命名为C:\windows\system32,因为库需要该名称。现在您需要将文件复制到路径变量的目录中,例如head。我建议不要使用该目录,但这是最简单的方法。最好把它放在其他地方并修改你的路径变量。如果你想要如何实现这一点,那么只有google它们有几十个解释。