La extracción de mp3 con avconv o ffmpeg ya no funciona correctamente

La extracción de mp3 con avconv o ffmpeg ya no funciona correctamente

Antes de actualizar a la última versión de Ubuntu, utilicé el siguiente comando para extraer mp3 de un archivo avi:

$ for x in *.avi; do ffmpeg -vol 100 -ab 160k -ar 44100 -i "$x" "`basename "$x" .avi`.mp3"; done

Esto funcionó. Pero desde Ubuntu 12.04 obtengoOpción sample_rate no encontrada.cuando intento ejecutar este comando. si omito-ar 44100(o -sample_rate 44100) extrae el mp3, pero en la mayoría de los casos la longitud del mp3 extraído ya no encaja. Eso significa que tienen una duración de 43 minutos o algo así, aunque el avi tiene una duración de sólo 5 minutos.

Es el mismo problema tanto con ffmpeg como con avconv. ¿Alguna idea de cómo resolver estos problemas?

Respuesta1

Pruebe con esto en su lugar:

ffmpeg -i "$x" -vol 100 -ab 160k -ar 44100 "`basename "$x" .avi`.mp3"

Antes, las opciones estaban delante del archivo de entrada, pero parece que desea configurarlas para el archivo de salida.

Respuesta2

¿Lo has probado con otros archivos avi? La pista de audio del archivo puede ser más larga que la pista de vídeo (sólo una suposición).

¿Has probado la opción -t?

   -t duration
       Restrict the transcoded/captured video sequence to the duration
       specified in seconds.  "hh:mm:ss[.xxx]" syntax is also supported.

Quizás quieras intentar configurar un filtro de flujo de bits de audio en ffmpeg. Nunca lo he probado pero el filtro "remove_extra" suena prometedor;)

   -absf bitstream_filter
       Bitstream filters available are "dump_extra", "remove_extra",
       "noise", "mp3comp", "mp3decomp".

¿Ha considerado usar un comando como ExifTool para ver información sobre el archivo y configurar sus opciones en consecuencia (tal vez incluso analizar la salida y automatizarla en su secuencia de comandos)?

Quizás puedas extraer el archivo de audio en un formato sin pérdidas y luego transcodificarlo, pero tiene que haber una manera mejor que esa.

Si lo solucionas, publica lo que has hecho porque no estoy satisfecho con los métodos obvios para procesar los miles de archivos de vídeo que necesito desmultiplexar. Hice un script similar al tuyo, sin embargo, quiero obtener archivos de audio de la mejor calidad posible sin desperdiciar espacio. Mis opciones de transcodificación seguramente serán dinámicas, por lo que necesito algo un poco más sofisticado que una sola línea.

Respuesta3

ffmpeg -version le informará qué opciones de compilación se habilitaron durante la compilación de ffmpeg para Ubuntu 12.04. Es posible que le falte una biblioteca o que una opción no estuviera habilitada durante el tiempo de compilación, por lo que tendría que volver a compilar con las opciones deshabilitadas habilitadas. La frecuencia de muestreo predeterminada para ffmpeg es 44100 con una velocidad de bits de 64k.

Respuesta4

Instale el ppa de ffmpeg desde ppa:jon-severinsson/ffmpeg y esto lo solucionará.

información relacionada