Исключение библиотеки JAVE (Java Audio Video Encoder) только в Linux (CentOS 7)

Я использую библиотеку JAVE (Java Audio Video Encoder), и разработанное приложение находится на 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 ответ

Решение

Я изменил bitRate значение audioAttributes объект из 88000 в 96000 на основе показателей выборки, задокументированных на следующей странице: https://micropyramid.com/blog/understanding-audio-quality-bit-rate-sample-rate/

Используя значение: 96000 битрейт решил мою проблему в среде Linux. Очень интересно, что на окнах работало нормально со значением 88000,

Сделал несколько тестов и вот результат:

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

Спасибо за помощь!

Другие вопросы по тегам