2017-10-13 8 views
0

JAVE (Java Audio Video Encoder) 라이브러리를 사용하고 있으며 개발 된 응용 프로그램은 Windows에 있습니다. 윈도우에서 .mp3 파일의 변환이 잘 작동하지만 리눅스에 (CentOS 7)을 배포했을 때 예외이 발생합니다.Linux (CentOS 7)에서만 JAVE (Java 오디오 비디오 인코더) 라이브러리 예외

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; 
} 

예외 : http://www.sauronsoftware.it/projects/jave/

전체 예외 로그 : https://jpst.it/1678l

0 여기

공식 페이지입니다

... 

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 

업데이트

아무도 아이디어가 있습니까? https://micropyramid.com/blog/understanding-audio-quality-bit-rate-sample-rate/

의 값 사용 : 비트 레이트가 리눅스에 내 문제를 해결로 96000

+0

예외는 무엇입니까? logcat은 (는) – Lokesh

+0

으로 인한 것입니다. 시스템에서 해당 코덱을 정의하지 않았을 수 있습니까? –

+0

@ M.Prokhorov 잘 모르겠습니다. ** JAVE **는'ffmpeg'에 대한 래퍼입니다. 하지만 코덱 ('libmp3lame')을 사용하는 리눅스 서버를 정의해야합니까? –

답변

0

나는 다음 페이지에 기록 샘플링 속도에 따라 9600088000에서 audioAttributes 개체의 bitRate 값을 변경했습니다 환경. Windows에서 매우 유용한 값인 88000이 매우 흥미 롭습니다.

는 몇 가지 테스트를하고 여기 결과입니다 : 지원

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

감사합니다!