Не удается конвертировать .ogg файл в .mp3 или другие форматы файлов

#ffmpeg #android-ffmpeg

#ffmpeg #android-ffmpeg

Вопрос:

Я пытаюсь конвертировать аудиофайл ogg в mp3 или другие форматы аудиофайлов, которые могут воспроизводиться на устройствах ios, но файлы ogg не конвертируются в другие форматы, такие как mp3 и caf. Я тестирую преобразование на устройстве Android.

Это аргументы моей команды ffmpeg:

 Command: "ffmpeg -y -i $inputFilePath -c:a copy $outputFilePath"
Both input and output filenames were surrounded with quotations

 [-y, -i, /data/user/0/com.musicapp/files/composer_audios/testtt ogg file.ogg, -c:a, copy, /storage/emulated/0/Android/data/com.musicapp/files/ball.mp3]
  

При попытке конвертировать в mp3. выдается эта ошибка:

  FFmpeg exited with rc: 1
 [mp3 @ 0x73f7b36a00] Invalid audio stream. Exactly one MP3 audio stream is required.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
  

При попытке конвертировать в файл .caf выдается эта ошибка:

 
FFmpeg exited with rc: 1
 [caf @ 0x73f7b36a00] unsupported codec
 Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing input

  

Но если я попытаюсь конвертировать mp3 файл в форматы, такие как caf, mkv, mp4, ошибка не выдается.

Комментарии:

1. Во входном имени файла есть пробел, добавьте кавычки

2. Когда я создавал строку, я добавил кавычки, когда аргументы в консоли не печатаются, кавычки. Имена файлов передаются как: «‘$_savePath/»${item.fileName}»»‘ Я пробовал с другими файлами ogg без пробелов, была выдана та же ошибка.

Ответ №1:

Удалите -c:a copy опцию.

Об этой опции в документации ffmpeg говорится:

специальное значение copy (только для вывода), указывающее, что поток не подлежит перекодированию.

Вы отключаете кодировку и предлагаете ffmpeg обрабатывать поток vorbis как поток mp3.

В вашем случае вы хотите закодировать свой входной поток как другой выходной поток.