JAVE(Java音频视频编码器)仅在Linux(CentOS 7)上的库异常
问题描述:
我正在使用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
有没有人有任何想法?
答
我已经改变了audioAttributes
对象的bitRate
值从88000
基于记录下页采样率96000
:https://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;
谢谢支持!
你得到了什么异常? logcat只显示由 – Lokesh
引起您的系统是否可能未定义该编解码器? –
@ M.Prokhorov我不知道。 ** JAVE **是'ffmpeg'上的包装器;但我应该在Linux服务器上定义使用编解码器('libmp3lame')? –