Команда FFmpeg для звуковых файлов, получающая ошибку mix - PullRequest
0 голосов
/ 13 мая 2019

Задача: Микшируйте аудио файлы, используя FFmpeg в Android.

Ошибка:

 [NULL @ 0xf6468400] Unable to find a suitable output format for ' -i '
 -i : Invalid argument

Моя команда:

  File m1 = new File(Environment.getExternalStorageDirectory() + "/MyFolder/m1.mp3"); 
  File m2 = new File(Environment.getExternalStorageDirectory() + "/MyFolder/m2.mp3");
 //m1,m2 are mp3 files
 //File outputDirectory2 = new File(Environment.getExternalStorageDirectory() + "/MyFolder/video1.mp3");

 String[] auidoMixCmd3={" -i ",""+m1.getPath()," -i ",""+m2.getPath()," -filter_complex [0:0][1:0] amix=inputs=2:duration=first:dropout_transition=0 -codec:a libmp3lame -q:a 0:-f mp3",outputDirectory2.getPath()};


 String[] auidoMixCmd2={" -i ",""+m1.getPath()," -i ",""+m2.getPath()," -i ",""+m1.getPath()," -filter_complex","\"[0:0][1:0] amix=inputs=2:duration=longest\" -c:a libmp3lame -f mp3",outputDirectory2.getPath()};

Я пробовал более 100 раз с разными командами, но я не получил никаких решений. Так как многие команды находятся в переполнении стека, но получают ту же ошибку. Пожалуйста, кто-нибудь поможет мне здесь.

1 Ответ

2 голосов
/ 21 мая 2019

Поскольку это строковый массив, вам не нужно добавлять символ +.Кроме того, нет необходимости в "" перед символом +.

Ваша команда должна выглядеть следующим образом:

String[] auidoMixCmd3 = { "-i ", m1.getPath(), "-i ", m2.getPath(), "-filter_complex [0:a][1:a] amix=inputs=2:duration=first:dropout_transition=0 -codec:a libmp3lame -q:a 0 -f mp3", outputDirectory2.getPath()};
...