J'ai environ 70 fichiers mp4 et je veux extraire les fichiers audio directement sans transcodage supplémentaire. Tous les fichiers mp4 ont des fichiers audio aac.
Je comprends que je peux utiliser la commande suivante pour extraire le fichier audio de l'un des fichiers mp4:
avconv -i "INPUT FILE" -map 0:1 -c:a copy "OUTPUT FILE"
Comment puis-je extraire tous les fichiers audio de tous les fichiers 70 mp4, donc je me retrouve avec 70 fichiers aac?
bash /path/to/the/script %F
- comme ici-map
peut toujours faire en sorte que la vidéo soit considérée lorsque vous passez à un autre format de sortie (si ce format peut contenir à la fois de l'audio et de la vidéo). Il est plus sûr de le garder tel quel.La réponse de Xiao est généralement la plus utile si vous avez tous les fichiers dans un seul répertoire; mais s'il existe des fichiers MP4 dispersés dans différents répertoires, vous pouvez utiliser cette
find
commande pour les convertir tous.Cela utilise une forme légèrement différente de substitution de chaîne bash à la fin: "$ {0 /% mp4 / m4a}" indique à bash de remplacer mp4 par m4a, mais seulement si le mp4 est à la fin de la chaîne.
la source
%
, il remplacera la première instance de la chaîne qu'il trouve; vous pouvez également l'utiliser#
pour ne remplacer la chaîne que si elle se trouve au début d'une variable; donc $ {0 / mp4 / m4a} remplacerait la première instance de mp4 par m4a (ce qui pourrait être un problème si vous avez des noms de fichiers vraiment étranges); et $ {0 / # mp4 / m4a} remplacera mp4 par m4a, mais seulement si la valeur de chaîne de la variable commence par mp4 (inutile ici, évidemment, mais cela pourrait être utile ailleurs).Pour éviter le traitement simultané de plusieurs fichiers (qui pourraient utiliser trop de ressources), utilisez
parallel
. Par défaut, il ne fait qu'un seul travail à la fois. Si vous souhaitez utiliser plusieurs cœurs de processeur en parallèle, essayezparallel -j 4 ...
4 travaux en parallèle. Consultez égalementman parallel
.Cette ligne va extraire
aac
les fichiers audio des vidéos sélectionnées et les mettre dans desm4a
conteneurs.Lorsque vous travaillez directement dans l'interface CLI, remplacez-le
%F
par la liste de vos fichiers d'entrée. Par exemple*.mp4
.Inspiré par cette réponse, par une réponse précédente à cette question et par le commentaire d' Evilsoup à cette dernière (en disant: `` les fichiers raw aac ne peuvent pas contenir de métadonnées; si vous souhaitez conserver les métadonnées des fichiers d'origine, utilisez m4a (qui est juste un autre nom pour mp4, mais est assez largement reconnu par les lecteurs audio) au lieu de aac comme extension de fichier ' ).
J'utilise de telles commandes dans les actions personnalisées de Thunar,
limiter l'application aux vidéos contenant du
aac
son.Pour avoir une fenêtre de terminal ouverte pendant le traitement, qui se ferme à la fin, la commande peut être modifiée comme:
la source
J'ai étendu la réponse de @ Xiao-Long Chen, en la transformant en un script qui ignore les fichiers lorsque le fichier de sortie est plus récent:
la source