¿Cómo extraer audio de un archivo de video usando python?

Quiero escribir un progtwig de python que pueda extraer audio de un archivo de video (por ejemplo, video.avi ). ¿Hay alguna buena biblioteca para ello? ¿Y de dónde debería empezar? Intenté usar PyMedia, pero no pude instalarlo en mi MacOSX (Mountain Lion).

EDITAR: El problema es video.avi no está completamente disponible. Alguien está escribiendo en él y le agrega algunos marcos cada segundo. Así que quería escribir un código en python para obtener el video tal como aparece y extraer el audio de él y escribirlo en un archivo (por ejemplo, audio.wav , audio.wav ). No sé si ffmpeg puede esperar a que el video se copie a video.avi .

Y no puedo esperar a que el video se copie por completo y luego hacer la extracción de audio. Tengo que hacerlo como viene.

No tengo una solución completa, pero a partir de los documentos de ffmpeg , parece que ffmpeg puede leer un archivo incompleto al ingresar a stdin. Ejemplo de la documentación:

 cat test.wav | ffmpeg -i pipe:0 

Si debe usar python, siempre puede llamar a ffmpeg usando subproceso .

Tuve problemas similares y no pude encontrar ejemplos de trabajo con códigos Python.

 import sys from moviepy.editor import * video = VideoFileClip(sys.argv[1]) audio = video.audio audio.write_audiofile(sys.argv[2]) # 1. Save this file as extract_audio.py # 2. Type $python extract_audio.py video_for_audio.mp4 audio_from_video.mp3 

Escribí una entrada de blog muy corta para eso también en el medio .

Si ya conoces el Python, no necesitarías una explicación complicada.

  1. Seleccione el archivo de video de destino para el audio.
  2. Luego, separe solo el archivo de audio de ese video.
  3. Guárdelo como un archivo de audio con el nombre dado por sys.argv [2]

Lo que debe hacer es simplemente modificar los nombres de los archivos después de $ python extract_audio.py y funcionará.