2 votos

FFMPEG ¿Cómo extraer un número variable de secuencias de audio?

Intento crear un pequeño archivo por lotes que extraiga todas las transmisiones de audio al arrastrar un video en él.

 ffmpeg.exe -i "%1" -map 0:a? -c:a copy "%1~extracted.aac"
 

Pero esto parece estar sobreescribiendo el mismo archivo para cada flujo de audio que encuentra.

No quiero especificar el número de pistas de audio, ya que puede variar.

¡Gracias de antemano por tu ayuda!

1voto

Mulvya Puntos 156

No hay una forma directa de hacer esto.

Es algo tedioso solución que se basa en el tee de salida muxer y una estimación del número máximo de flujos de audio que se pueden encontrar. Digamos que es de 4.

Así, el comando es

ffmpeg -i in.mp4 -c copy -map 0:a?
       -f tee
              "[select='a\:0':onfail=ignore]in-0.aac|[select='a\:1':onfail=ignore]in-1.aac|
               [select='a\:2':onfail=ignore]in-2.aac|[select='a\:3':onfail=ignore]in-3.aac"

Los cuatro se crearán los archivos, pero si el tamaño es cero, entonces la corriente no existen. Así, una vez que se elimine todos de tamaño cero salidas, usted tendrá todo lo extraído de las corrientes. FFmpeg no automáticamente seleccionar el formato de salida, por lo que los arroyos tienen que ser AAC. El uso de un reciente versión de ffmpeg, 4.0+

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: