2016-12-01 3 views
2

Я хочу конвертировать видеофайл в mp3-файл в android.извлечение аудио в формате MP3 из видео в android

Я использую следующий код для преобразования видео в MP3:

File source = new File(sourceFile); 
File target = new File(destFile); 
audioAttributes = new AudioAttributes(); 

audioAttributes.setCodec("libmp3lame"); 
audioAttributes.setBitRate(new Integer(128000)); 
audioAttributes.setChannels(new Integer(2)); 
audioAttributes.setSamplingRate(new Integer(44100)); 

EncodingAttributes encodingAttributes = new EncodingAttributes(); 
encodingAttributes.setFormat("mp3"); 
encodingAttributes.setAudioAttributes(audioAttributes); 

Encoder encoder = new Encoder(); 

try { 
    encoder.encode(source, target, encodingAttributes); 
} catch (EncoderException e) { 
    e.printStackTrace(); 
} 

Но это не работает. Вот ошибка, которую я получаю:

java.io.IOException: Error running exec(). Command: [/bin/chmod, 755, /data/data/com.example.bansi_vasundhara.videotomp3_demo/cache/jave-1/ffmpeg] Working Directory: null Environment: null 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at java.lang.ProcessManager.exec(ProcessManager.java:211) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at java.lang.Runtime.exec(Runtime.java:173) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at java.lang.Runtime.exec(Runtime.java:128) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at it.sauronsoftware.jave.DefaultFFMPEGLocator.<init>(DefaultFFMPEGLocator.java:85) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at it.sauronsoftware.jave.Encoder.<init>(Encoder.java:111) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at com.example.bansi_vasundhara.videotomp3_demo.MainActivity.onCreate(MainActivity.java:50) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at android.app.Activity.performCreate(Activity.java:6005) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2446) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2555) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at android.app.ActivityThread.access$800(ActivityThread.java:176) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1437) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:111) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at android.os.Looper.loop(Looper.java:194) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:5576) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at java.lang.reflect.Method.invoke(Native Method) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at java.lang.reflect.Method.invoke(Method.java:372) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:956) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:751) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err: Caused by: java.io.IOException: No such file or directory 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at java.lang.ProcessManager.exec(Native Method) 
12-01 15:19:04.116 19702-19702/com.example.bansi_vasundhara.videotomp3_demo W/System.err:  at java.lang.ProcessManager.exec(ProcessManager.java:209) 

Любая идея о том, что может быть неправильным?

+0

Поиск Google для FFmpeg андроида. вы будете решать это –

ответ

1

Использование FFMPEG для андроида U необходимо реализовать метод (я думаю, что его присутствует в библиотеке FFmpeg уже) , и вы можете использовать следующую команду для извлечения аудио

ffmpeg -i input-video.avi -vn -acodec copy output-audio.aac 
Смежные вопросы