Extrayendo wav de mp4 mientras conserva la mayor calidad posible

39

Revisé la documentación y puedo extraer un wavarchivo de un mp4archivo con el comando:

ffmpeg -i my_video.mp4 output_audio.wav

Sin embargo, ¿cómo puedo controlar la calidad del wavarchivo? (por ejemplo, decir que quiero preservar la calidad del audio original tanto como pueda)

Amelio Vazquez-Reina
fuente

Respuestas:

20

wavlos archivos suelen contener audio sin comprimir, y ese es el valor predeterminado cuando se produce un wavarchivo usando ffmpeg. Por lo tanto, su comando ya conservará la máxima calidad, ya que no hay compresión con pérdida (o compresión de ningún tipo) para reducir la calidad.

Suponiendo que el audio original está comprimido, puede mantener la misma calidad sin el gran tamaño de archivo necesario para el audio sin comprimir simplemente copiando el audio original (sin el video) a un nuevo mp4archivo:

ffmpeg -i my_video.mp4 -c copy -map 0:a output_audio.mp4

También puede volver a codificarlo o convertirlo a un códec de audio diferente, pero si ese códec utiliza compresión con pérdida, la calidad se perderá.

mark4o
fuente
Gracias. ¿Qué pasa con la frecuencia de muestreo y el número de bytes por segundo? ¿Cómo ffmpeg los elige automáticamente?
Amelio Vazquez-Reina
La frecuencia de muestreo será la misma que la de la entrada. Porque es sin comprimir, la tasa de bits para el wavarchivo es simplemente la frecuencia de muestreo × tamaño de la muestra × número de canales . Si desea reducir la calidad, puede solicitar ffmpegvolver a muestrearlo a una velocidad menor, cambiarlo a PCM de 8 bits o mezclarlo a mono, pero no lo hace de manera predeterminada.
mark4o
1
Por cierto, también podría pedirle que vuelva a muestrear a una velocidad más alta, pero eso solo aumentaría el tamaño del archivo y no la calidad, por lo que no tiene mucho sentido a menos que necesite una frecuencia de muestreo específica.
mark4o
1
En mi sistema con Ubuntu 14.04 tuve que usar en -acodec copylugar de-c copy -map 0:a
Daniel Alder
Esto no se exporta como un archivo wave y no responde la pregunta.
Andrew
22

Extracción de audio sin pérdida / con pérdida de videos ( flv / mp4 to wav / flac / mp3) con la ffmpegversión 2.3.1 en Ubuntu 14.04

Visita: http://howto-pages.org/ffmpeg/

En primer lugar, encuentre los datos básicos de la fuente. Abre el video en VLC Player. Ir

> Tools > Codec Information 
> Stream 0 (Video/ Codec/ Resolution/ Frame rate) 
> Stream 1 (Audio/ Codec/ Channel/ Sample rate)

Considere un archivo de entrada ( -i), como input.mp4u otros archivos- flv, avi, ...). Para eliminar el video ( -vn) y sacar el audio sin comprimir ( output.wav) a una frecuencia de muestreo de 44100 Hz ( -ar 44100) en código de pulso modulado con -acodec pcm_s16lemuestras firmadas de 16 bits, little endian ( ) y 2 canales (estéreo) ( -ac 2), use el siguiente comando.

ffmpeg -i input.mp4 -vn -acodec pcm_s16le -ar 44100 -ac 2 output.wav

Otras -acodecopciones son mp3 flac m4a.

-acode flacConvierte a archivo de 24 bits. Para el muestreo de 16 bits, debe ser

ffmpeg -i input.mp4 -acodec flac -bits_per_raw_sample 16 -ar 44100 output.flac

Los archivos wav y flac son más grandes que el archivo mp4

ac3la conversión funciona con -acodec 3F2R/LFE -ac 6creats 4 pistas ficticias, como se verificó en Audacity.

Para la conversión de mp3, simplemente use

ffmpeg -i input.mp4 -vn -acodec mp3 -ab 320k -ar 44100 -ac 2 output.mp3

Se podrían obtener más opciones para la entrada y la salida al probar de la lista obtenida de la línea de comando en el terminal

$ ffmpeg -help
dr.murli
fuente
1
Esto no responde la pregunta. El OP ya sabe cómo extraer el audio como un archivo WAV. Están preguntando cómo controlar la calidad, lo que por supuesto no es realmente posible y, por lo tanto, debería haber sido la respuesta (como mark4o's). MP3 y FLAC también están fuera del alcance aquí.
slhck
Llegué a este enlace para encontrar una solución y, cuando estaba trabajando, obtuve algo más, como he mencionado. El problema, tal como lo entendí y en el que también estaba trabajando, es "¿cómo puedo controlar la calidad del archivo wav? (Por ejemplo, decir que quiero preservar la calidad del audio original tanto como pueda)". No soy un técnico, sino un aficionado y nuevo en Ubuntu y ffmpeg. $ ffmpeg -i input.mp4 también proporciona toda la calidad inicial y las opciones se pueden agregar en consecuencia para aprovechar al máximo.
dr.murli
Unknown encoder 'pcm_s161e'por favor aconseje sobre cómo abordar esto.
kRazzy R