2017-10-13 390 views
0

我正在使用JAVE(Java音頻視頻編碼器)庫和開發的應用程序是在Windows上。 在windows上,.mp3文件的轉換工作正常,但當我在Linux(CentOS 7)上部署時,會引發異常JAVE(Java音頻視頻編碼器)僅在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

有沒有人有任何想法?

+0

你得到了什麼異常? logcat只顯示由 – Lokesh

+0

引起您的系統是否可能未定義該編解碼器? –

+0

@ M.Prokhorov我不知道。 ** JAVE **是'ffmpeg'上的包裝器;但我應該在Linux服務器上定義使用編解碼器('libmp3lame')? –

回答

0

我已經改變了audioAttributes對象的bitRate值從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; 

謝謝支持!