mercredi 28 janvier 2015

Can't convert MP4 to MP3 with FFmpeg in Java

I want to extract an audio file(.mp3) from a video file(.3gp) in Android.


Now I'm trying to use ffmpeg in java file, but only to get an broken mp3 file. It only produces a short noise. How can it change to an audio format?


Here is the code I tried.



public void convertToMp3 (String audioFilePath, String soundTitle){

try {
//TODO: Grabber
FrameGrabber grabber = new FFmpegFrameGrabber( audioFilePath ); // 3gpfile
grabber.setFormat("mp3");
grabber.setSampleFormat(6);
grabber.setSampleRate(44100);
grabber.setFrameRate(30.0);
grabber.setAudioBitrate(192000);
grabber.setAudioChannels(2);
grabber.start();


//TODO: Recorder
String stragePath = Environment.getExternalStorageDirectory().getAbsolutePath();
FrameRecorder recorder = new FFmpegFrameRecorder(stragePath + "/Music/"+soundTitle+".mp3",grabber.getAudioChannels());
recorder.setSampleFormat(grabber.getSampleFormat());
recorder.setSampleRate(44100);
recorder.setSampleFormat(6);
recorder.setAudioBitrate(128000);
recorder.setAudioChannels(2);
recorder.setFormat("mp3");
recorder.setFrameRate(30.0);
recorder.setAudioCodec(avcodec.AV_CODEC_ID_MP3);
recorder.start();


Frame frame;
while ((frame = grabber.grabFrame()) != null) {
recorder.record(frame);
}
recorder.stop();
grabber.stop();

} catch (FrameGrabber.Exception e) {
e.printStackTrace();
} catch (FrameRecorder.Exception e) {
e.printStackTrace();
}
}


I used these libraries. Build.Grade(app)



dependencies {
compile group: 'org.bytedeco', name: 'javacv', version: '0.10'
compile group: 'org.bytedeco', name: 'javacpp', version: '0.10'
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '2.4.9-0.9', classifier: 'android-arm'
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '2.3-0.9', classifier: 'android-arm'
}


Do you have any idea? Any advice will be appreciated.


Aucun commentaire:

Enregistrer un commentaire