¿Cómo puedo convertir video MP4 a audio MP3 con FFmpeg?


120

Necesito extraer una pista de audio MP3 de un video MP4 con ffmpeg. Puedo hacer esto para .flv -> mp3, pero no conozco los parámetros de la línea de comandos para mp4-> mp3. Por ejemplo, flv -> mp3:

ffmpeg -i video.flv -acodec copy audio.mp3

¿Qué parámetros debo usar para mp4 -> mp3?


2
Si realmente no necesita un MP3, no convertiría el audio: MP4-> MP3 es una transformación con pérdida, perderá información de origen adicional.
— Thom Wiggers

no más ffmpeg para ubuntu 14.04
— Louis

@ThomWiggers ¿es necesariamente con pérdida? No sé cómo se codifican los mp4, pero siempre que pueda separar el video y el audio, no debería ser así
— franco

La versión original de esta pregunta no tenía claro cómo se codificó el audio, eso se modificó en las ediciones. Remuxing no tiene que ser con pérdidas.
— Thom Wiggers

Respuestas:


150

El comando básico es:

ffmpeg -i filename.mp4 filename.mp3

o

ffmpeg -i video.mp4 -b:a 192K -vn music.mp3

Verifique esta URL: Video MP4 a archivo MP3 usando ffmpeg (Ubuntu 9.10 Karmic Koala)

Nota: Ubuntu no suministra FFmpeg, pero la bifurcación llamada Libav . La sintaxis es la misma: solo use en avconvlugar de ffmpegpara los ejemplos anteriores.


3
¡Gracias! ¿Esta calidad es la mejor, o puedo hacerlo mejor?


no más ffmpeg para ubuntu 14.04
— Louis

2
@Louis Todavía puede descargarlo desde ffmpeg.org/download.html
— slhck

1
@Louis: lo mismo para 14.10, pero aparentemente regresa en 15.04: askubuntu.com/questions/432542/…
— Wilf

52

La mejor manera de codificar MP3 es utilizarlo -q:apara una velocidad de bits variable.

ffmpeg -i k.mp4 -q:a 0 -map a k.mp3

La qopción solo se puede usar con libmp3lame y corresponde a la -Vopción LAME . Ver:


@slhck ... ese es un buen punto, pero acabo de probar en un archivo de video, y omitiendo -vnsolo copia la transmisión de audio. Supongo ffmpeg deben tener alguna forma de detectar la diferencia (que acaba de comprobar un archivo con ffprobe, y el video fue la corriente 1 en lugar del habitual 0, y tenía algo de metadatos: comment : Cover (front))
— evilsoup

Este finalmente jugó también el reproductor de música Android. Gracias
— michalzuber

1
Y para convertir todo el directorio (incluidos los nombres de archivo con espacios) con el comando anterior: para i en * .mp4; do ffmpeg -i "$ i" -q: a 0 -map a "$ (nombre base" $ {i / .mp4} "). mp3"; hecho;
— kingSlayer

¿Cómo es el .mp3 resultante diferente del comando vanilla ffmpeg -i vid.mp4 audio.mp3en la respuesta de @Naga Harish M? ¿Menos con pérdida?
— Frank
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.