Converti file audio in mp3 usando ffmpeg


159

Devo convertire i file audio in mp3 usando ffmpeg.

Quando scrivo il comando come ffmpeg -i audio.ogg -acodec mp3 newfile.mp3, ottengo l'errore:

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

Ho anche eseguito questo comando:

 ffmpeg -formats | grep mp3

e ottenuto questo in risposta:

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

Immagino che il codec mp3 non sia installato. Sono sulla buona strada qui?

Risposte:


230

È possibile utilizzare questo comando:

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

Spiegazione degli argomenti utilizzati in questo esempio:

  • -i - file di input

  • -vn - Disabilita il video, per assicurarti che nessun video (inclusa l'immagine di copertina dell'album) sia incluso se la fonte sarebbe un file video

  • -ar- Imposta la frequenza di campionamento dell'audio. Per i flussi di output è impostato di default sulla frequenza del flusso di input corrispondente. Per i flussi di input questa opzione ha senso solo per i dispositivi di acquisizione audio e demuxer non elaborati ed è mappata sulle opzioni di demuxer corrispondenti.

  • -ac- Imposta il numero di canali audio. Per i flussi di output è impostato di default sul numero di canali audio di input. Per i flussi di input questa opzione ha senso solo per i dispositivi di acquisizione audio e demuxer non elaborati ed è mappata sulle opzioni di demuxer corrispondenti. Quindi usato qui per assicurarsi che sia stereo (2 canali)

  • -b:a - Converte il bitrate audio in 192kbit esatti al secondo


5
Questo nota la differenza per gli argomenti bitrate di ffmpeg . -qscale:aè per VBR ed -b:aè per CBR. La codifica ABR è possibile ma dettagliata in un posto diverso.
1934286,

2
Sostituirei -b: a con -q: a 2, che darebbe VBR ~ 192 anziché CBR
apanloco

@apanloco per me, cambiando -b in -q macella assolutamente il suono. Usando nessuna opzione o usando le opzioni presentate nella risposta, il suono è praticamente lo stesso del sorgente .wav.
Michael Teter,

76

1) passa a mp3

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

2) ogg a mp3

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

3) da ac3 a mp3

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

4) aac in mp3

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

Come si specifica il bitrate mp3?
Suragch,

4
Aggiungi -b:a 128kper 128 kbps.
Gyan,

5
O ancora più breve senza acodec: ffmpeg -i audio.aac audio.mp3
Timo

come convertire da .mp3 in .ogg?
Cristea Victor,

18

Non importa,

Sto convertendo i miei file audio in mp2 usando il comando:

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

Questo comando funziona perfettamente.

So che questo in realtà converte i file in formato mp2, ma le dimensioni dei file risultanti sono le stesse ..


2
Genera un file wave
LtWorf

8
Questo non si traduce in un file mp3
m13r

2
Sebbene le dimensioni siano uguali, questi file mp2 non sono riproducibili in un browser Web , in quanto non sono mp3. Nemmeno con un flash player. L'unico vantaggio che hanno è che richiedono meno CPU per codificare, ma gli svantaggi non ne valgono la pena.
Daniel F,

3
Questa non dovrebbe essere la risposta accettata, in quanto non risponde correttamente alla domanda.
reinierpost,

18

Per l'elaborazione in batch con i file nella cartella con l'obiettivo di 190 VBR e l'estensione del file = .mp3 anziché .ac3.mp3 è possibile utilizzare il seguente codice

Cambia .ac3 in qualunque sia il formato audio sorgente.

Impostazioni mp3 ffmpeg

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

13

Per l'elaborazione batch dei file nella cartella:

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

Questo script converte tutti i file "wav" nella cartella in file mp3 e aggiunge l'estensione mp3

ffmpeg deve essere installato. (Vedi altre risposte)


1
Con -f mp2MP2 viene generato, non MP3. Modificalo in-f mp3
Gyan il

3
Il comando sopra crea i file che sono nominati wav.mp3. Per ottenere file con l'estensione corretta, modificare il comando in for i in *.wav; do ffmpeg -i "$i" -f mp3 "${i%.*}.mp3"; done:, ovvero aggiungere .*dopo i%.
Suzana,

11

Ho dovuto eliminare il mio ffmpeg e quindi installarne un altro da un ppa:

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

Quindi converti:

 ffmpeg -i audio.ogg -f mp3 newfile.mp3

4
questo è il modo breve, ma se vuoi specificare la qualità kb al secondo, usa -ab 192k
wrivas

7

Come descritto qui l'estensione di input e output verrà rilevata da ffmpegquindi non è necessario preoccuparsi dei formati, è sufficiente eseguire questo comando:

ffmpeg -i inputFile.ogg outputFile.mp3



2

L'alta qualità per Mac OS funziona perfettamente!

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


1

Prova FFmpeg Static Build Link

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

Ospita la build statica sul tuo server nella stessa directory

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

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

shell_exec($command);

0

Se hai una cartella e una sottocartella piena di wav che vuoi convertire, inserisci il comando seguente in un file, salvalo in un file .bat nella radice della cartella in cui vuoi convertire, quindi esegui il file 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"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.