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í?

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


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

¿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.


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

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)


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

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



2

¡La alta calidad para Mac OS funciona perfectamente!

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



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"
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.