仅限Linux(CentOS 7)上的JAVE(Java音频视频编码器)库异常

时间:2017-10-13 10:53:38

标签: java linux ffmpeg mp3 jave

我使用 JAVE(Java音频视频编码器)库,开发的应用程序在Windows上。 在Windows上,.mp3文件的转换工作正常,但是当我在linux(CentOS 7)上部署时,会抛出异常

据我所知 JAVE 还有ffmpeg可执行文件的包装。

这是我的代码:

try {
        File source = new File(sourceFile);
        File target = new File(targetFile);

        final AudioAttributes audio = new AudioAttributes();
        audio.setCodec("libmp3lame");
        audio.setBitRate(88000);
        audio.setChannels(2);
        audio.setSamplingRate(44100);   

        EncodingAttributes attrs = new EncodingAttributes();
        attrs.setFormat("mp3");
        attrs.setAudioAttributes(audio);

        Encoder encoder = new Encoder();
        encoder.encode(source, target, attrs);
} catch (EncoderException ex) {
    throw ex;
}

例外:

...

Caused by: it.sauronsoftware.jave.EncoderException: Error while opening codec for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height
    at it.sauronsoftware.jave.Encoder.encode(Encoder.java:926)
    at it.sauronsoftware.jave.Encoder.encode(Encoder.java:713)
    at com.hft2.ejb.util.Mp3JaveEncoder.encode(Mp3JaveEncoder.java:36)
    ... 206 more

更新

以下是官方网页:http://www.sauronsoftware.it/projects/jave/

完整例外日志:https://jpst.it/1678l

有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

我已根据以下页面中记录的采样率bitRate对象的audioAttributes值从88000更改为96000https://micropyramid.com/blog/understanding-audio-quality-bit-rate-sample-rate/

使用值96000作为比特率解决了我在linux环境中的问题。 非常有趣的是,在Windows上工作正常88000

进行了一些测试,结果如下:

Linux supported bitRate values: 128000, 96000, 64000, 56000, 32000;
Linux not supported bitRate values: 88000, 24000, 16000;

感谢您的支持!