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