2017-11-24 14 views
1

를 사용하여 두 개의 오디오 파일을 병합내가는 FFmpeg이 succsesfull.Following하지 library.but 사용하여 두 개의 MP3 파일을 병합 할는 FFmpeg

GeneralUtils.checkForPermissionsMAndAbove(MergerActivity.this, true); 
LoadJNI vk = new LoadJNI(); 
try { 
    String workFolder = getApplicationContext().getFilesDir().getAbsolutePath(); 
    //String[] complexCommand = {"ffmpeg","-i", "/sdcard/videokit/in.mp4"}; 
    String[] complexCommand = {"ffmpeg -i \"concat: /storage/internalsd/Music/02 Love Dose.mp3| /storage/internalsd/Music/02 Love Dose.mp3\" -acodec copy output.mp3"}; 

    vk.run(complexCommand , workFolder , getApplicationContext()); 
    Log.i("test", "ffmpeg4android finished successfully"); 
} catch (Throwable e) { 
    Log.e("test", "vk run exception.", e); 
} 

오류 로그 표시가 도와주세요

vk run exception. 

com.netcompss.ffmpeg4android.CommandValidationException 
    at com.netcompss.loader.LoadJNI.run(LoadJNI.java:39) 
    at com.netcompss.loader.LoadJNI.run(LoadJNI.java:55) 
    at com.handyaudio.MergerActivity.onMergeButtonClicked(MergerActivity.java:356) 
    at com.handyaudio.MergerActivity.onClick(MergerActivity.java:272) 
    at android.view.View.performClick(View.java:4446) 
    at android.view.View$PerformClick.run(View.java:18437) 
    at android.os.Handler.handleCallback(Handler.java:733) 

을 다음 내 코드입니다 오류를 해결하십시오.

+0

[concat demuxer] (https://stackoverflow.com/a/11175851/1109017)가 아니라 연결 프로토콜입니다. – LordNeckbeard

답변

0

우선 허가이 먼저 있어야합니다.

이 밖으로 시도 -

ffmpeg -filter_complex "amovie=file1.mp3 [a0]; amovie=file2.mp3 [a1]; [a0][a1] amix=inputs=2:duration=shortest [aout]" -map [aout] -acodec mp3 file_merged.mp3 

편집 1 :

CONCAT 연 프로토콜은 이것이다 : ffmpeg -i 'concat:input1|input2 -codec copy output

난 당신이 잘못 어디로 가고 있는지 생각입니다 파일 이름에, 당신 파일 이름을 완성하기 전에 space을 넣으십시오. 즉, 02 LoveDose.mp3

+1

OP는 혼합하지 않고 연결하려고합니다. 또한,'amovie '가 필요없고 보통'ffmpeg -i file1.mp3 -i file2.mp3 ...'처럼 입력을 추가하면됩니다. – LordNeckbeard

+0

저에게 완전한 명령을주십시오. –