FFMPEG duplica la duración del audio al extraerlo de un vídeo

FFMPEG duplica la duración del audio al extraerlo de un vídeo

Tengo un archivo de vídeo video.mp4. Tiene una duración de 18 minutos 23 segundos. Estoy buscando extraer elsolo audiode este vídeo y cree un MP3 de la mayor calidad posible a partir del audio del vídeo.

Algunos googlefu me llevan a este comando:ffmpeg -i video.mp4 audio.mp3

El problema es que este comandodoblesla duración del audio que se emite (la duración es 36 minutos 46 segundos). Hace un bucle de la pista de audio una vez, por lo que la salida contiene los 18 minutos y 23 segundos completos de audio, luego inmediatamente comienza de nuevo los 18 minutos y 23 segundos de audio.

Algunos googlefu más me llevan a esta bandera: -write_xing 0deesta pregunta SO, pero incluso con esa bandera todavía repite el audio.

EDITAR: Googlefu adicional y yo parecemos pensar que tiene algo que ver con 2 canales de audio (y quizás hacer un bucle del canal 2 inmediatamente después del canal 1, en lugar de fusionar los dos) me lleva a esta bandera: -ac 1forzarlo a fusionar estéreo -> mono. Esto tampoco funcionó y aún genera un archivo MP3 de 38 minutos y 46 segundos.

¿Cómo puedo extraer (a MP3) el audio de un archivo de vídeo sin duplicar la duración?

Respuesta1

Prueba esto:

ffmpeg -i video.mp4 -vn -sn -c:a mp3 -ab 192k audio.mp3

He usado esto para el mismo propósito y no cambió la duración del audio. Además, (en mi humilde opinión) intentar aumentar la calidad es excesivo, pero puedes intentarlo con 320k.

Respuesta2

Google encontró algunos informes de errores en ffmpeg Trac que muestran que -write_xing 0 en su línea de comando ffmpeg también puede solucionarlo. Parece que la discrepancia en la longitud se debe a valores incorrectos en los datos de Xing que se escriben de forma predeterminada.

información relacionada