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

Java 无法检索本机文件ffmpeg-amd64.exe,java,audio,video,ffmpeg,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.s

我正在尝试将视频转换为音频。这就是我使用以下代码的原因:

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)
2016年9月26日上午11:28:29 it.sauronsoftware.jave.DefaultFFMPEGLocator复制文件
严重:无法获取ffmpeg-amd64.exe的本机库
线程“main”java.lang.RuntimeException中出现异常:无法检索本机文件ffmpeg-amd64.exe
位于it.sauronsoftware.jave.DefaultFFMPEGLocator.copyFile(DefaultFFMPEGLocator.java:139)
sauronsoftware.jave.DefaultFFMPEGLocator.(DefaultFFMPEGLocator.java:80)
sauronsoftware.jave.Encoder.(Encoder.java:105)
位于Convert.main(Convert.java:29)

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

错误很明显:找不到ffmpeg

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

如果您需要将其用于其他平台,请检查


在二进制文件
ffmpeg.exe
所在的子目录
bin
中的zip文件中。现在需要将其重命名为
ffmpeg-amd64.exe
,因为库需要该名称。现在,您需要将文件复制到path变量的目录中,例如
C:\windows\system32
。我建议不要使用该目录,但这是最简单的方法。最好把它放在其他地方,修改path变量。有几十种解释,如果你想知道如何做到这一点,就用谷歌搜索吧。

答案不错,尽管有一个问题,ffmpeg.exe依赖于其他DLL,我想把它打包到
jave-1.0.2
中,并替换它包含的旧默认ffmpeg.exe。。。我怎么能做到?我的意思是使ffmpeg.exe不依赖于.dll文件,我看到它的大小只有230 kb,如何在ffmpeg.exe中打包所有的.dll。@GOXR3PLUS你读过这句话吗:“我建议下载x64静态版本。因为这只是一个你需要关心的文件。”。如果你是静态的,你对dll文件没有问题:-)哦,我很抱歉,我检查了所有的东西,除了静态,非常喜欢:))