Convierte archivos de audio a mp3 usando ffmpeg

159

Necesito convertir archivos de audio a mp3 usando ffmpeg.

Cuando escribo el comando como ffmpeg -i audio.ogg -acodec mp3 newfile.mp3, me sale el error:

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

También ejecuté este comando:

 ffmpeg -formats | grep mp3

y obtuve esto en respuesta:

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

Supongo que el códec mp3 no está instalado. ¿Estoy en el camino correcto aquí?

Hrishikesh Choudhari
fuente

Respuestas:

230

Puedes usar este comando:

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

Explicación de los argumentos utilizados en este ejemplo:

  • -i - fichero de entrada

  • -vn - Desactive el video, para asegurarse de que no se incluya ningún video (incluida la imagen de portada del álbum) si la fuente sería un archivo de video

  • -ar- Establecer la frecuencia de muestreo de audio. Para las secuencias de salida, se establece de manera predeterminada la frecuencia de la secuencia de entrada correspondiente. Para las secuencias de entrada, esta opción solo tiene sentido para dispositivos de captura de audio y demuxers sin formato y se asigna a las opciones de demuxer correspondientes.

  • -ac- Establecer el número de canales de audio. Para las secuencias de salida, se establece de forma predeterminada el número de canales de audio de entrada. Para las secuencias de entrada, esta opción solo tiene sentido para dispositivos de captura de audio y demuxers sin formato y se asigna a las opciones de demuxer correspondientes. Se usa aquí para asegurarse de que sea estéreo (2 canales)

  • -b:a - Convierte el bitrate de audio para ser exacto 192kbit por segundo

Franco
fuente
55
Esto señala la diferencia para los argumentos de velocidad de bits ffmpeg . -qscale:aes para VBR y -b:aes para CBR. La codificación ABR es posible pero se detalla en un lugar diferente.
1934286
2
Reemplazaría -b: a con -q: a 2, lo que daría VBR ~ 192 en lugar de CBR
apanloco
@apanloco para mí, cambiando -b a -q absolutamente mata el sonido. Al no usar ninguna opción, o al usar las opciones presentadas en la respuesta, suena prácticamente igual que la fuente .wav.
Michael Teter
76

1) wav a mp3

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

2) ogg a mp3

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

3) ac3 a mp3

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

4) aac a mp3

ffmpeg -i audio.aac -acodec libmp3lame audio.mp3
Ijas Ahamed N
fuente
¿Cómo se especifica la tasa de bits de mp3?
Suragch
44
Agregar -b:a 128kpor 128 kbps.
Gyan
55
O incluso más corto sin acodec: ffmpeg -i audio.aac audio.mp3
Timo
cómo convertir de .mp3 a .ogg?
Cristea Victor
18

No importa,

Estoy convirtiendo mis archivos de audio a mp2 usando el comando:

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

Este comando funciona perfectamente.

Sé que esto realmente convierte los archivos al formato mp2, pero luego los tamaños de archivo resultantes son los mismos.

Hrishikesh Choudhari
fuente
2
Genera un archivo wave
LtWorf
8
Esto no da como resultado un archivo mp3
m13r
2
Si bien los tamaños son los mismos, estos archivos mp2 no se pueden reproducir en un navegador web , ya que no son mp3. Ni siquiera con un reproductor flash. El único beneficio que tienen es que requieren menos CPU para codificar, pero los inconvenientes no valen la pena.
Daniel F
3
Esta no debería ser la respuesta aceptada, ya que no responde la pregunta correctamente.
reinierpost
18

Para el procesamiento por lotes con archivos en la carpeta con el objetivo de 190 VBR y la extensión de archivo = .mp3 en lugar de .ac3.mp3, puede usar el siguiente código

Cambie .ac3 a cualquier formato de audio de origen.

ajustes de mp3 ffmpeg

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

Para los archivos de procesamiento por lotes en la carpeta:

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

Este script convierte todos los archivos "wav" de la carpeta a archivos mp3 y agrega la extensión mp3

ffmpeg tiene que estar instalado. (Ver otras respuestas)

MKK
fuente
1
Con -f mp2MP2 se genera, no MP3. Cámbielo a-f mp3
Gyan
3
El comando anterior crea archivos con nombre wav.mp3. Para obtener archivos con la extensión de archivo correcta, cambie el comando a: for i in *.wav; do ffmpeg -i "$i" -f mp3 "${i%.*}.mp3"; donees decir, agregue .*después i%.
Suzana
11

Tuve que purgar mi ffmpeg y luego instalar otro de 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

Luego convierta:

 ffmpeg -i audio.ogg -f mp3 newfile.mp3
Komu
fuente
44
este es el camino corto, pero si desea especificar la calidad kb por segundo, use -ab 192k
wrivas
7

Como se describe aquí, la extensión de entrada y salida se detectará por ffmpeglo que no hay necesidad de preocuparse por los formatos, simplemente ejecute este comando:

ffmpeg -i inputFile.ogg outputFile.mp3

Kasra K
fuente
2

¡La alta calidad para Mac OS funciona perfectamente!

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

Ivan Sanchez
fuente
1

Prueba FFmpeg Static Build Link

Documentación: https://www.johnvansickle.com/ffmpeg/

Aloje la compilación estática en su servidor en el mismo directorio

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

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

shell_exec($command);
Libro de códigos
fuente
0

Si tiene una carpeta y una subcarpeta llena de wav que desea convertir, coloque el siguiente comando en un archivo, guárdelo en un archivo .bat en la raíz de la carpeta donde desea convertir, y luego ejecute el archivo 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
fuente