Конвертируйте аудио файлы в mp3, используя ffmpeg

159

Мне нужно конвертировать аудио файлы в mp3 с помощью ffmpeg.

Когда я пишу команду как ffmpeg -i audio.ogg -acodec mp3 newfile.mp3, я получаю ошибку:

FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: 
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 1 / 52.20. 1
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  built on Jun 24 2010 14:56:20, gcc: 4.4.1
Input #0, mp3, from 'ZHRE.mp3':
  Duration: 00:04:12.52, start: 0.000000, bitrate: 208 kb/s
    Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 256 kb/s
Output #0, mp3, to 'audio.mp3':
    Stream #0.0: Audio: 0x0000, 44100 Hz, stereo, s16, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
Unsupported codec for output stream #0.0

Я также выполнил эту команду:

 ffmpeg -formats | grep mp3

и получил это в ответ:

FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: 
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 1 / 52.20. 1
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  built on Jun 24 2010 14:56:20, gcc: 4.4.1
 DE mp3             MPEG audio layer 3
 D A    mp3             MP3 (MPEG audio layer 3)
 D A    mp3adu          ADU (Application Data Unit) MP3 (MPEG audio layer 3)
 D A    mp3on4          MP3onMP4
 text2movsub remove_extra noise mov2textsub mp3decomp mp3comp mjpegadump imxdump h264_mp4toannexb dump_extra

Я думаю, что кодек mp3 не установлен. Я на правильном пути здесь?

Хришикеш Чоудхари
источник

Ответы:

230

Вы можете использовать эту команду:

ffmpeg -i input.wav -vn -ar 44100 -ac 2 -b:a 192k output.mp3

Объяснение используемых аргументов в этом примере:

  • -i - входной файл

  • -vn - Отключите видео, чтобы убедиться, что видео (включая изображение обложки альбома) не включено, если источником будет видеофайл

  • -ar- Установите частоту дискретизации звука. Для выходных потоков по умолчанию устанавливается частота соответствующего входного потока. Для входных потоков этот параметр имеет смысл только для устройств захвата звука и необработанных демультиплексоров и сопоставлен с соответствующими параметрами демультиплексора.

  • -ac- Установите количество аудиоканалов. Для выходных потоков по умолчанию установлено количество входных аудиоканалов. Для входных потоков этот параметр имеет смысл только для устройств захвата звука и необработанных демультиплексоров и сопоставлен с соответствующими параметрами демультиплексора. Так что здесь используется, чтобы убедиться, что это стерео (2 канала)

  • -b:a - Преобразует аудио битрейт, чтобы быть точным 192 кбит в секунду

Фрэнк
источник
5
Это отмечает разницу для аргументов битрейта ffmpeg . -qscale:aдля VBR и -b:aдля CBR. Кодирование ABR возможно, но подробно описано в другом месте.
1934286
2
Я бы заменил -b: a на -q: a 2, что дало бы VBR ~ 192 вместо CBR
apanloco
@apanloco для меня, меняя -b на -q, абсолютно прорезаю звук. Использование опций вообще или использование опций, представленных в ответе, звучат практически так же, как источник .wav.
Майкл Тетер
77

1) WAV в mp3

ffmpeg -i audio.wav -acodec libmp3lame audio.mp3

2) ogg в mp3

ffmpeg -i audio.ogg -acodec libmp3lame audio.mp3

3) ac3 в mp3

ffmpeg -i audio.ac3 -acodec libmp3lame audio.mp3

4) AAC в mp3

ffmpeg -i audio.aac -acodec libmp3lame audio.mp3
Иджас Ахамед Н
источник
Как вы определяете битрейт mp3?
Сурагч
4
Добавьте -b:a 128kза 128 кбит / с.
Гьян
5
Или еще короче без acodec: ffmpeg -i audio.aac audio.mp3
Тимо
как конфертировать из .mp3 в .ogg?
Кристя Виктор
19

Для пакетной обработки с файлами в папке с целью 190 VBR и расширением файла = .mp3 вместо .ac3.mp3 вы можете использовать следующий код

Измените .ac3 на любой другой аудиоформат.

Настройки mp3 ffmpeg

for f in *.ac3 ; do ffmpeg -i "$f" -acodec libmp3lame -q:a 2 "${f%.*}.mp3"; done
План B
источник
18

Неважно,

Я конвертирую мои аудиофайлы в mp2 с помощью команды:

ffmpeg -i input.wav -f mp2 output.mp3

Эта команда работает отлично.

Я знаю, что это на самом деле конвертирует файлы в формат mp2, но в результате размеры файлов остаются такими же.

Хришикеш Чоудхари
источник
2
Создает волновой файл
LtWorf
8
Это не приводит к mp3-файлу
m13r
2
Хотя размеры одинаковы, эти файлы mp2 не воспроизводятся в веб-браузере , поскольку они не являются mp3. Даже с флеш-плеером. Единственное преимущество, которое у них есть, заключается в том, что им требуется меньше ресурсов процессора для кодирования, но недостатки этого не стоят.
Даниэль Ф
3
Это не должен быть принятый ответ, так как он не отвечает на вопрос правильно.
reinierpost
13

Для пакетной обработки файлов в папке:

for i in *.wav; do ffmpeg -i "$i" -f mp3 "${i%}.mp3"; done

Этот скрипт конвертирует все "wav" файлы в папке в mp3 файлы и добавляет расширение mp3

ffmpeg должен быть установлен. (См. Другие ответы)

MKK
источник
1
С -f mp2MP2 генерируется, а не MP3. Измените это на-f mp3
Gyan
3
Приведенная выше команда создает файлы с именами wav.mp3. Чтобы получить файлы с правильным расширением, измените команду на:, for i in *.wav; do ffmpeg -i "$i" -f mp3 "${i%.*}.mp3"; doneт.е. добавьте .*после i%.
Сюзана
11

Мне пришлось очистить свой ffmpeg, а затем установить еще один из ppa:

sudo apt-get purge ffmpeg
sudo apt-add-repository -y ppa:jon-severinsson/ffmpeg 
sudo apt-get update 
sudo apt-get install ffmpeg

Затем конвертируйте:

 ffmpeg -i audio.ogg -f mp3 newfile.mp3
KOMU
источник
4
это короткий путь, но если вы хотите указать качество в килобайтах в секунду, используйте -ab 192k
wrivas
7

Как описано здесь, расширение ввода и вывода будет обнаружено, ffmpegпоэтому нет необходимости беспокоиться о форматах, просто запустите эту команду:

ffmpeg -i inputFile.ogg outputFile.mp3

Касра К
источник
2

Высокое качество для Mac OS работает отлично!

ffmpeg -i input.wma -q:a 0 output.mp3

Иван Санчес
источник
1

Попробуйте FFmpeg Static Build Link

Документация: https://www.johnvansickle.com/ffmpeg/

Разместите статическую сборку на вашем сервере в том же каталоге

$ffmpeg = dirname(__FILE__).'/ffmpeg';

$command = $ffmpeg.'ffmpeg -i audio.ogg -acodec libmp3lame audio.mp3';

shell_exec($command);
Кодовая книга
источник
0

Если у вас есть папка и подпапка, заполненная файлами wav, которые вы хотите преобразовать, поместите в файл команду ниже, сохраните ее в файле .bat в корне папки, в которую вы хотите преобразовать, а затем запустите файл bat

for /R %%g in (*.wav) do start /b /wait "" "C:\ffmpeg-4.0.1-win64-static\bin\ffmpeg" -threads 16 -i "%%g" -acodec libmp3lame "%%~dpng.mp3" && del "%%g"
Динеш Раджан
источник