FFMPEG Comment extraire un nombre variable de flux audio?

2

J'essaie de créer un petit fichier de commandes qui extrait tous les flux audio en y faisant glisser une vidéo.

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

Mais cela semble écraser le même fichier pour chaque flux audio trouvé.

Je ne veux pas spécifier le nombre de pistes audio, car il peut varier.

Merci d'avance pour votre aide!

MurderOfPoes
la source

Réponses:

1

Il n'y a pas de moyen direct de le faire.

Il existe une solution de contournement quelque peu fastidieuse qui repose sur le tux muxer et une estimation du nombre maximal de flux audio que vous pouvez rencontrer. Disons que c'est 4.

Donc, la commande est

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"

Les quatre fichiers seront créés, mais si la taille est zéro, le flux n’existe pas. Ainsi, une fois que vous supprimez toutes les sorties de taille zéro, vous aurez tous les flux extraits. FFmpeg ne sélectionne pas automatiquement le format de sortie, les flux doivent donc être au format AAC. Utiliser une version récente de ffmpeg, 4.0+

Gyan
la source
Supprimé les commentaires précédents car je n'utilisais pas la bonne version de ffmpeg. Votre solution fonctionne, merci!
MurderOfPoes