Перетворення аудіофайлів у 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.
Майкл Тетер

76

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) аак в mp3

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

Як вказати бітрейт mp3?
Сурагч

4
Додайте -b:a 128kза 128 кбіт / с.
Gyan

5
Або ще коротше без acodec: ffmpeg -i audio.aac audio.mp3
Тимо

як перетворити з .mp3 в .ogg?
Крісте Віктор

18

Не звертай уваги,

Я перетворюю свої аудіофайли в mp2 за допомогою команди:

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

Ця команда прекрасно працює.

Я знаю, що це фактично перетворює файли у формат mp2, але тоді розміри файлів у результаті однакові ..


2
Створює файл хвиль
LtWorf

8
Це не призведе до отримання mp3-файлу
m13r

2
Хоча розміри однакові, ці файли mp2 не відтворюються у веб-браузері , оскільки вони не є mp3. Навіть із флеш плеєром. Єдина перевага, яку вони мають, - це те, що для кодування їм потрібно менше процесора, але недоліки цього не варті.
Даніель Ф

3
Це не повинна бути прийнятою відповіддю, оскільки вона не відповідає правильно на питання.
reinierpost

18

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

Змініть .ac3 на будь-який формат аудіо джерела.

Налаштування mp3 ffmpeg

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

13

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

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

Цей скрипт перетворює всі файли "wav" у папці в mp3-файли та додає mp3-розширення

ffmpeg повинні бути встановлені. (Див. Інші відповіді)


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

4
це короткий шлях, але якщо ви хочете вказати якість кб на секунду, використовуйте -ab 192k
wrivas

7

Як описано тут, розширення вводу та виводу буде виявлено, ffmpegтому не потрібно турбуватися про формати, просто запустіть цю команду:

ffmpeg -i inputFile.ogg outputFile.mp3




1

Спробуйте статичну збірку FFmpeg 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"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.