¿Cuál es la mejor manera de extraer audio de un archivo de video?

Soy un gran fan de HandBrake . Es el epítome de lo simple. Seleccione un archivo de video (o DVD), seleccione un ajuste preestablecido, seleccione una ruta de salida, haga clic en Iniciar. Una cierta cantidad de tiempo después en relación con el tamaño/calidad del contenido, y usted tiene un archivo de video bastante perfecto adecuado para el medio de su elección.

He estado buscando cualidades similares en un convertidor de audio y, más preferiblemente, un extractor de audio (de un archivo de video determinado). Me encantaría poder arrastrar un archivo de video a una aplicación, especificar que quiero el archivo de audio en AAC con una tasa de bits determinada, hacer clic en Iniciar y dejar que la aplicación haga el resto.

No soy reacio a usar Handbrake para que el aspecto de conversión sea suficiente, siempre que la extracción de audio después del hecho sea un proceso simple. El punto es dar el menor número de pasos posible.

¿Algun consejo? ¿Aplicaciones? ¿Ideas?

Fission es una buena utilidad para extraer datos de audio de un archivo de video, y me estaba preparando para hacerlo a la antigua usanza, pista por pista, manualmente. No es mi preferencia. Luego tuve la idea de Applescript, pero desafortunadamente parece que Fission no tiene un AS Dictionary.
@Jason consideró algunas secuencias de comandos de interfaz de usuario para hablar con Fission.
¿Es ese Applescript generalmente primitivo cuando una aplicación determinada no tiene un diccionario? Haga clic en el menú llamado "Archivo". Haga clic en el elemento de menú llamado "Guardar". ¿Cosas más o menos así?
@Jason sí. Pero puede ser mejor que hacerlo a mano, dependiendo de cuántos de estos planees hacer.
Me topé con una entrada en las preguntas frecuentes de Handbrake hoy: I just want audio, not video. Can I do that? Not with HandBrake, no. You could just encode the video at a low resolution with a fast low quality encoder like ffmpeg, then extract the audio track. Or you could use OSEx . Desafortunadamente, es solo PPC. Booooo!

Respuestas (7)

Finalmente encontré la combinación exacta que necesitaba, y la encontré en ffmpeg .

Ampliaré un poco la pregunta y explicaré el hecho de que ya estaba trabajando con video/audio contenido en mp4, por lo tanto, MP4 Video (.m4v) y AAC Audio (.m4a). Absolutamente quería una versión tal como está del audio extraído del video.

En primer lugar, es bastante fácil instalar cosas como ffmpeg, mplayer, cosas creadas a partir de ellas y paquetes de código abierto similares hoy en día. Entre Rudix , Homebrew , MacPorts y Fink (¿alguien todavía usa fink?), el software de terceros es muy fácil de instalar.

Entonces, después de instalar ffmpeg y tener ffmpegacceso a la línea de comando, ejecuté un comando como este:

ffmpeg -i videofile.mp4 -vn -acodec copy audiotrack.m4a

ffmpeg : El comando.

-i videofile.mp4 : El archivo de video fuente.

-vn : No grabar (no considerar) datos de video.

-acodec copy : copia la fuente de audio tal cual, aquí es donde está toda la magia. ffmpeg escribirá los datos de audio como varios códecs compatibles, pero especificar la copia genera una copia exacta bit a bit de la transmisión. Junto con la desactivación del video a través de -vn, lo deja con una pista de audio solitaria dentro de un contenedor mp4.

audiotrack.m4a : El nombre del archivo de salida.

No puedo creer que algo así haya sido tan difícil y oculto durante tanto tiempo.

Dado que siempre tengo la intención de extraer datos de audio aac de un contenedor/video mp4, escribí un pequeño script rápido para hacerlo.

#!/bin/bash

INFILE="$1"
TMPOUTFILE="${INFILE%.*}"
OUTFILE="${TMPOUTFILE##*/}.m4a"

ffmpeg -i "${INFILE}" -vn -acodec copy "${OUTFILE}"

Ahora, simplemente invoco rip_m4a_from_mp4 somevideofile.mp4y me queda una versión de solo audio con el mismo nombre de archivo, que termina en m4a.

¡Simple! Para mí de todos modos. Sin GUI, rápido como un rayo, esta es solo una de esas cosas que la línea de comandos hace mejor.

Posiblemente, podría reemplazar m4aen la línea 5 con $2y especificar la nueva extensión en la línea de comando. De esa manera, si está trabajando con otra cosa y sabe cuál es el audio, puede especificarlo. Puedo hacerlo yo mismo y cambiar el nombre del script a 'rip_audio_from_video'. ¡Genérico!
Para empezar. ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"entonces brew install ffmpeg_ Ahora siga las instrucciones anteriores.
La página de inicio de Homebrew es brew.sh. Después de seguir las instrucciones de esa página (en caso de que cambien), brew install ffmpeg. Y entonces sí, entonces podrás seguir mis pasos.
Si desea volver a codificar el audio en otro formato, puede hacerloffmpeg en el mismo comando. Por ejemplo: ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3( catswhocode.com/blog/19-ffmpeg-commands-for-all-needs )
@alexw asegúrese de especificar 192k, no 192. De lo contrario, volverá a una codificación de 128kbit/s.

Puede hacer esto directamente en el Finder, comenzando con Mac OS X 10.7 (Lion), como se describe en OSX Daily .

La respuesta corta es, seleccione el archivo o archivos en el Finder, luego ctrlhaga clic y elija Servicios -> Codificar archivos de video seleccionados .

Tenga en cuenta que es posible que deba habilitar este servicio en el panel de preferencias del teclado .

ingrese la descripción de la imagen aquí

¡Guau! ¡Muy conveniente! ¡Otra razón para usar una Mac!
En mi caso, el tamaño del archivo resultante m4aen comparación con el uso ffmpegfue más de 3 veces mayor. Podría ser una preocupación, especialmente para archivos más grandes.

Arrastraría la película a GarageBand. GarageBand dividirá el archivo en audio y video, momento en el que puede eliminar la pista de video (dejándolo solo con la pista de audio).

Luego puede hacer clic en la opción Enviar canción a iTunes en el menú Compartir (ver imagen). Esto le mostrará los diversos formatos a los que desea exportar.

ingrese la descripción de la imagen aquí

Lo mejor de todo es que es gratis :) ya que todas las Mac vienen con GarageBand. Además, también te permite ajustar aspectos del audio como la velocidad y el volumen.

Habiendo dicho eso, si desea una solución verdaderamente automática y se siente cómodo en la línea de comandos con Terminal, hágamelo saber en los comentarios y crearé un script que le permita hacer esto.

No tengo la intención de hacer esto por una razón (a menos que me equivoque, no dude en corregirme): recompresión. Los archivos de video ya tienen datos de audio significativamente comprimidos y deseo conservar los datos de audio originales tanto como sea posible. La característica principal de Fission es la "edición y reexportación sin pérdidas". Sin mencionar que GarageBand es realmente muy lento para tareas como esta :/. Sin embargo, esta es una solución maravillosa para una tarea que cumple con el tema, así que te he hecho +1 por ese aspecto.

Quicktime 7 hará el trabajo muy fácilmente.

Simplemente abra el video y vaya a Archivo > Exportar > Sonido a AIFF/AU/Wave > seleccione su ruta y ¡listo! :)

Parece que necesito encontrar mi disco de Snow Leopard...
@vxjasonxv no tienes que hacerlo. Puede descargarlo a través del enlace provisto..
¡Oh gracias! Realmente no pensé que el enlace sería realmente sustantivo de esa manera.
¿Se aplica aquí la misma trampa que agregué a la respuesta de Rob? Puedo "guardar una ola" del audio, pero ya está comprimida, y en teoría para usarla tendría que volver a comprimirla, cosa que preferiría no hacer.

QuickTime Player 10 también puede exportar audio (sin volver a codificar).

Seleccione Archivo > Exportar > Solo audio…

Probado en macOS 10.12 Sierra con QuickTime Player 10.4.

¿Pero eso vuelve a codificar el audio?
@JasonSalaz No, solo extrae. Esta es en mi humilde opinión una mejor opción. Es bastante rápido y conserva la calidad. Además, puede volver a codificarlo en cualquier momento posterior.
Impresionante. Mi respuesta ffmpeg también se extrae solo, por lo que probablemente solo tome tanto tiempo como QuickTime. El beneficio de ffmpeg es que no tiene el peso de carga inherente de la interfaz de usuario, por lo que sin duda es más rápido en 1 archivo y exponencialmente más rápido en muchos archivos. Pero esta es una gran respuesta para alguien versado en Automator / Applescripting, y quizás no tan cómodo en la línea de comando o con scripts de shell.

El avconvertcomando activa la opción Servicios > Codificar archivos de video seleccionados.

Puedes usarlo así:

avconvert --quiet --preset PresetAppleM4A --source foo.mp4 --output bar.m4a
Este es un comando fantástico, podría reemplazar mi flujo de trabajo de freno de mano (... tal vez ), pero es una nueva codificación que esta pregunta buscaba evitar. La respuesta aceptada, usar FFMPEG para manipular capas, es exactamente lo que necesito para esta pregunta en particular y lo he seguido usando en este caso durante tantos años como lo ha sido. Agradezco que se me informe.
ffmpeges mucho mejor. Esta es una buena alternativa cuando no la tienes cerca.

Simplemente abro el archivo de video con audacia y luego exporto el audio. Puedo configurar los parámetros del archivo de audio exportado durante la exportación.

Configurar los parámetros del archivo de audio significa volver a codificar el audio. ¿Audacity tiene una opción de transferencia (extracción sin cambios)?