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

19

Soy un gran admirador de HandBrake . Es el epítome de lo simple. Seleccione un archivo de video (o DVD), seleccione un preset, seleccione una ruta de salida, haga clic en Inicio. Una cierta cantidad de tiempo más tarde 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 dado). Me encantaría poder arrastrar un archivo de video a una aplicación, especificar que quiero el archivo de audio en AAC a una tasa de bits determinada, hacer clic en Inicio y dejar que la aplicación haga el resto.

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

¿Algun consejo? Aplicaciones? Ideas?

Jason Salaz
fuente
La fisión es una buena utilidad para extraer datos de audio de un archivo de video, y me estaba preparando para hacerlo de la manera tradicional, pista por pista, manualmente. No es mi preferencia Más tarde tuve la idea de Applescript, pero desafortunadamente parece que Fission no tiene un diccionario AS.
Jason Salaz
@Jason consideró algunas secuencias de comandos de interfaz de usuario para hablar con Fission
Nathan Greenstein
¿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 del menú llamado "Guardar". ¿Cosas más o menos así?
Jason Salaz
@Jason sí. Pero puede ser mejor que hacerlo a mano, dependiendo de cuántos de estos planeas atravesar.
Nathan Greenstein
Hoy me topé con una entrada en las preguntas frecuentes de 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 Handbrake : OSEx . Desafortunadamente, es solo PPC. Booooo!
Jason Salaz

Respuestas:

22

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 mp4, por lo que MP4 Video (.m4v) y AAC Audio (.m4a). Absolutamente quería una versión tal cual 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 en la actualidad. Entre Rudix , Homebrew , MacPorts y Fink (¿alguien ya usa Fink?), El software de terceros es fácil de instalar.

Entonces, después de instalar ffmpeg, y tener el ffmpegaccesible en la línea de comandos, 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 grabe (no considere) 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 al especificar la copia se obtiene una copia exacta de la transmisión bit por bit. Junto con la desactivación de video a través de -vn, te deja con una sola pista de audio dentro de un contenedor mp4.

audiotrack.m4a : el nombre del archivo de salida.

No puedo creer que algo así fuera tan difícil y oculto por tanto tiempo.

Como siempre tengo la intención de extraer datos de audio 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.

¡Sencillo! Para mí de todos modos. Sin GUI, a la velocidad del rayo, esta es solo una de esas cosas que la línea de comando hace mejor.

Jason Salaz
fuente
Es factible que pueda 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!
Jason Salaz
Para empezar. ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"entonces brew install ffmpeg. Ahora siga las instrucciones anteriores.
boyfarrell
La página principal del Homebrew es brew.sh . Después de seguir las instrucciones en esa página (en caso de que cambien), brew install ffmpeg. Y luego sí, entonces puedes seguir mis pasos.
Jason Salaz
2
Si no desea volver a codificar el audio a otro formato, ffmpegpuede hacerlo 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
1
@alexw asegúrese de especificar 192k, no 192. De lo contrario, volverá a una codificación de 128kbit / s.
smets.kevin
12

Puede hacerlo 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 Teclado .

ingrese la descripción de la imagen aquí

Craig S. Cottingham
fuente
¡Guauu! ¡Muy conveniente! ¡Otra razón para usar una Mac!
Javad Sadeqzadeh
En mi caso, el tamaño del m4aarchivo resultante en comparación con el uso ffmpegfue más de 3 veces mayor. Podría ser una preocupación, especialmente para archivos más grandes.
Casimir
6

Arrastraría la película a GarageBand. GarageBand dividirá el archivo en audio y video, en ese momento 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 foto). Luego aparecerá con los diversos formatos a los que desea exportar.

ingrese la descripción de la imagen aquí

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

Dicho esto, si quieres una solución verdaderamente automática y te sientes cómodo en la línea de comandos con Terminal, avísame en los comentarios y obtendré un script para permitirte hacer esto.

robzolkos
fuente
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 preservar los datos de audio originales tanto como sea posible. La característica asesina 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, por lo que te he hecho +1 para ese aspecto.
Jason Salaz
4

Quicktime 7 hará el trabajo con mucha facilidad.

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

nuc
fuente
Parece que necesito encontrar mi disco de Snow Leopard ...
Jason Salaz
@vxjasonxv no tienes que hacerlo. Puede descargarlo a través del enlace proporcionado.
nuc
¡Oh gracias! Realmente no pensé que el enlace fuera realmente sustantivo de esa manera.
Jason Salaz
1
¿Se aplica aquí la misma trampa que agregué a la respuesta de Rob? Puedo "guardar una onda" del audio, pero ya está comprimido, y en teoría para usarlo tendría que volver a comprimirlo, lo que preferiría no hacer.
Jason Salaz
4

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.

Melebio
fuente
1
¿Pero eso vuelve a codificar el audio?
Jason Salaz
1
@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.
Melebius
1
Increíble. Mi respuesta ffmpeg también es extraer solo, por lo que probablemente solo tome tanto tiempo como QuickTime. El beneficio de ffmpeg es que no tiene el peso de carga de la interfaz de usuario inherente, por lo que es indudablemente 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 tal vez no se sienta tan cómodo en la línea de comandos o con scripting de shell.
Jason Salaz
0

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.

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