2017-10-13 160 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; 

谢谢支持!