Konwertuj pliki audio na mp3 za pomocą ffmpeg

159

Muszę przekonwertować pliki audio na mp3 za pomocą ffmpeg.

Kiedy piszę polecenie jako ffmpeg -i audio.ogg -acodec mp3 newfile.mp3, pojawia się błąd:

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

Uruchomiłem również to polecenie:

 ffmpeg -formats | grep mp3

i otrzymałem w odpowiedzi:

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

Wydaje mi się, że kodek mp3 nie jest zainstalowany. Czy jestem na dobrej drodze?

Hrishikesh Choudhari
źródło

Odpowiedzi:

230

Możesz użyć tego polecenia:

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

Wyjaśnienie użytych argumentów w tym przykładzie:

  • -i - plik wejściowy

  • -vn - Wyłącz wideo, aby upewnić się, że żadne wideo (w tym zdjęcie okładki albumu) nie jest dołączone, jeśli źródłem byłby plik wideo

  • -ar- Ustaw częstotliwość próbkowania dźwięku. W przypadku strumieni wyjściowych jest domyślnie ustawiona częstotliwość odpowiedniego strumienia wejściowego. Dla strumieni wejściowych ta opcja ma sens tylko dla urządzeń przechwytujących dźwięk i surowych demuxerów i jest odwzorowywana na odpowiednie opcje demultipleksera.

  • -ac- Ustaw liczbę kanałów audio. W przypadku strumieni wyjściowych domyślnie ustawiana jest liczba wejściowych kanałów audio. Dla strumieni wejściowych ta opcja ma sens tylko dla urządzeń przechwytujących dźwięk i surowych demuxerów i jest odwzorowywana na odpowiednie opcje demultipleksera. Użyty tutaj, aby upewnić się, że jest stereo (2 kanały)

  • -b:a - Konwertuje bitrate audio na dokładne 192 kb / s

Szczery
źródło
5
To zwraca uwagę na różnicę dla argumentów bitrate ffmpeg . -qscale:adotyczy VBR i -b:aCBR. Kodowanie ABR jest możliwe, ale szczegółowe w innym miejscu.
1934286
2
Zamieniłbym
@apanloco dla mnie, zmiana -b na -q absolutnie niszczy dźwięk. Brak jakichkolwiek opcji lub korzystanie z opcji przedstawionych w odpowiedzi brzmi praktycznie tak samo, jak źródło .wav.
Michael Teter,
76

1) wav do mp3

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

2) ogg do mp3

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

3) ac3 na mp3

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

4) aac do mp3

ffmpeg -i audio.aac -acodec libmp3lame audio.mp3
Ijas Ahamed N
źródło
Jak określić szybkość transmisji plików mp3?
Suragch
4
Dodaj -b:a 128kdla 128 kbps.
Gyan,
5
Lub jeszcze krócej bez acodec: ffmpeg -i audio.aac audio.mp3
Timo
jak przekonwertować z .mp3 do .ogg?
Cristea Victor
18

Nieważne,

Konwertuję moje pliki audio na mp2 za pomocą polecenia:

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

To polecenie działa doskonale.

Wiem, że to faktycznie konwertuje pliki do formatu mp2, ale wynikowe rozmiary plików są takie same.

Hrishikesh Choudhari
źródło
2
Generuje plik wave
LtWorf
8
Nie powoduje to powstania pliku mp3
m13r
2
Chociaż rozmiary są takie same, tych plików mp2 nie można odtworzyć w przeglądarce internetowej , ponieważ nie są one plikami mp3. Nawet z odtwarzaczem flash. Jedyną korzyścią, jaką mają, jest to, że wymagają mniej procesora do kodowania, ale wady nie są tego warte.
Daniel F
3
Nie powinna to być akceptowana odpowiedź, ponieważ nie odpowiada ona poprawnie na pytanie.
reinierpost
18

Do przetwarzania wsadowego z plikami w folderze mającymi na celu 190 VBR i rozszerzenie pliku = .mp3 zamiast .ac3.mp3 możesz użyć następującego kodu

Zmień .ac3 na dowolny źródłowy format audio.

ustawienia ffmpeg mp3

for f in *.ac3 ; do ffmpeg -i "$f" -acodec libmp3lame -q:a 2 "${f%.*}.mp3"; done
plan B
źródło
13

W przypadku plików przetwarzania wsadowego w folderze:

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

Ten skrypt konwertuje wszystkie pliki „wav” w folderze na pliki mp3 i dodaje rozszerzenie mp3

Należy zainstalować ffmpeg . (Zobacz inne odpowiedzi)

MKK
źródło
1
Z -f mp2MP2 jest generowany, a nie MP3. Zmień to na-f mp3
Gyan,
3
Powyższe polecenie tworzy pliki o nazwach wav.mp3. Aby pobrać pliki z poprawnym rozszerzeniem, zmień polecenie na for i in *.wav; do ffmpeg -i "$i" -f mp3 "${i%.*}.mp3"; done:, czyli dodaj .*po i%.
Suzana,
11

Musiałem wyczyścić mój ffmpeg, a następnie zainstalować inny z ppa:

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

Następnie przekonwertuj:

 ffmpeg -i audio.ogg -f mp3 newfile.mp3
Komu
źródło
4
to jest krótka droga, ale jeśli chcesz określić jakość kb na sekundę, użyj -ab 192k
wrivas
7

Jak opisano tutaj, rozszerzenie wejścia i wyjścia zostanie wykryte przez, ffmpegwięc nie ma potrzeby martwić się o formaty, po prostu uruchom to polecenie:

ffmpeg -i inputFile.ogg outputFile.mp3

Kasra K
źródło
2

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

Kodowanie VBR:

ffmpeg -vn -ar 44100 -ac 2 -q:a 1 -codec:a libmp3lame output.mp3
Guillaume M.
źródło
2
Zapomniałeś danych wejściowych.
llogan
2

Wysoka jakość dla Mac OS działa idealnie!

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

Ivan Sanchez
źródło
1

Wypróbuj łącze FFmpeg Static Build Link

Dokumentacja: https://www.johnvansickle.com/ffmpeg/

Hostuj kompilację statyczną na serwerze w tym samym katalogu

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

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

shell_exec($command);
Książka kodów
źródło
0

Jeśli masz folder i podfolder pełen plików wav, które chcesz przekonwertować, umieść poniższe polecenie w pliku, zapisz je w pliku .bat w katalogu głównym folderu, w którym chcesz przekonwertować, a następnie uruchom plik 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"
Dinesh Rajan
źródło