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

Мне нужно преобразовать аудиофайлы в 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 кодек. Я здесь на правильном пути?


person Hrishikesh Choudhari    schedule 15.07.2010    source источник


Ответы (12)


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

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

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

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

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

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

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

  • -b:a - Преобразует битрейт аудио до 192 кбит в секунду.

person Frank    schedule 18.10.2012
comment
Здесь отмечается разница для аргументов битрейта ffmpeg. -qscale:a - для VBR, а -b:a - для CBR. Кодирование ABR возможно, но подробно в другом месте. - person 1934286; 21.01.2017
comment
Я бы заменил -b: a на -q: a 2, что даст VBR ~ 192 вместо CBR - person apanloco; 08.07.2019
comment
@apanloco для меня, изменение -b на -q полностью уничтожает звук. Если вообще не использовать параметры или использовать параметры, представленные в ответе, звук будет практически таким же, как и исходный .wav. - person Michael Teter; 05.08.2019

1) wav в mp3

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

2) ogg в mp3

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

3) ac3 to mp3

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

4) aac в mp3

ffmpeg -i audio.aac -acodec libmp3lame audio.mp3
person Ijas Ahamed N    schedule 18.05.2016
comment
Как указать битрейт мп3? - person Suragch; 14.12.2016
comment
Добавьте -b:a 128k для 128 кбит / с. - person Gyan; 18.12.2016
comment
Или даже короче без acodec: ffmpeg -i audio.aac audio.mp3 - person Timo; 11.07.2018
comment
как конвертировать из .mp3 в .ogg? - person Cristea Victor; 01.06.2020
comment
Я использую libmp3lame, но почему его кодек на VLC говорит о mp2 (mpeg audio layer 1/2) ??? - person Fthr; 04.02.2021

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

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

Настройки mp3 ffmpeg

for f in *.ac3 ; do ffmpeg -i "$f" -acodec libmp3lame -q:a 2 "${f%.*}.mp3"; done
person planb    schedule 04.01.2017

Неважно,

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

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

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

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

person Community    schedule 24.07.2010
comment
Создает волновой файл - person LtWorf; 06.10.2014
comment
Это не приводит к созданию файла mp3 - person m13r; 18.10.2014
comment
Несмотря на одинаковые размеры, эти файлы mp2 нельзя воспроизводить в веб-браузере, поскольку они не являются mp3. Даже с флеш-плеером. Единственное преимущество, которое у них есть, состоит в том, что для кодирования им требуется меньше процессора, но недостатки того не стоят. - person Daniel F; 16.04.2018
comment
Это не должен быть принятым ответом, поскольку он не дает правильного ответа на вопрос. - person reinierpost; 17.06.2018

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

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

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

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

person MKK    schedule 18.12.2016
comment
С -f mp2 создается MP2, а не MP3. Измените его на -f mp3 - person Gyan; 18.12.2016
comment
Приведенная выше команда создает файлы с именем wav.mp3. Чтобы получить файлы с правильным расширением, измените команду на: for i in *.wav; do ffmpeg -i "$i" -f mp3 "${i%.*}.mp3"; done, т.е. добавьте .* после i%. - person Suzana; 25.02.2018

Мне пришлось очистить мой 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
person Komu    schedule 09.01.2015
comment
это короткий путь, но если вы хотите указать качество в килобайтах в секунду, используйте -ab 192k - person wrivas; 29.08.2015

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

ffmpeg -i inputFile.ogg outputFile.mp3

person Kasra K    schedule 18.10.2019

https://trac.ffmpeg.org/wiki/Encode/MP3

Кодировка VBR:

ffmpeg -vn -ar 44100 -ac 2 -q:a 1 -codec:a libmp3lame output.mp3
person Guillaume M.    schedule 28.06.2018
comment
Вы забыли ввод. - person llogan; 29.03.2019

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

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

person Ivan Sanchez    schedule 22.12.2018

Попробуйте FFmpeg Static Build Ссылка

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

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

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

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

shell_exec($command);
person Code Book    schedule 26.01.2018

Если у вас есть папка и подпапка, полная файлов 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"
person Dinesh Rajan    schedule 11.07.2018

Я объясню, как конвертировать webm в mp3 для Mac, думаю, для Linux это тоже работает.

  1. Установите ffmpeg - brew install ffmpeg (mac) или sudo apt install ffmpeg (linux)
  2. Создание сценария оболочки - Откройте текстовый редактор, поместите внутрь следующий код:
#!/bin/bash

echo webm to mp3 converter! Work begins! 
for FILE in *.webm; do     
    echo -e "Processing file '$FILE'";
    ffmpeg -i "${FILE}" -vn -ab 128k -ar 44100 -y "${FILE%.webm}.mp3";
done;

этот код будет искать все файлы с расширением .webm в текущем каталоге.

  1. Сохраните этот файл без расширения (например my-converter)
  2. Перейти к созданному файлу через терминал
  3. Сделайте файл исполняемым, набрав команду: chmod 700 my-converter, теперь в том же каталоге будет создан исполняемый файл unix (.sh).
  4. Запустите файл из терминала, набрав: ./my-converter, и процесс начнется, вы увидите прогресс в окне терминала.

Выполнено.

person M22    schedule 13.04.2021