J'ai 228 fichiers mp4 (2,6 Go) et je voudrais en extraire l'audio (mp3 ou ogg). Je veux les extraire par lots - de préférence avec bash. Je ne sais pas si tous les fichiers utilisent le même codec audio qu'ils ont été enregistrés au cours d'années différentes, allant de 2006 à 2012.
Je veux les parcourir tous, choisir le nom du fichier, détecter le codec audio et utiliser ffmpeg pour extraire l'audio.
C'est possible?
Réponses:
Vous dites que vous voulez "en extraire l'audio (mp3 ou ogg)". Mais que faire si l'audio du fichier mp4 n'en fait pas partie? il faudrait quand même transcoder. Alors pourquoi ne pas laisser la détection du format audio à ffmpeg?
Pour convertir un fichier:
Pour convertir de nombreux fichiers:
Vous pouvez bien sûr sélectionner tous les paramètres ffmpeg pour l'encodage audio que vous aimez, pour définir des choses comme le débit binaire, etc.
Utilisez
-acodec libmp3lame
et modifiez l'extension de.ogg
à.mp3
pour l'encodage mp3.Si vous voulez vraiment extraire l'audio, vous pouvez simplement "copier" la piste audio dans un fichier en utilisant
-acodec copy
. Bien sûr, la principale différence est que le transcodage est lent et gourmand en CPU, tandis que la copie est très rapide car vous ne faites que déplacer des octets d'un fichier à un autre. Voici comment copier uniquement la piste audio (en supposant qu'elle soit au format mp3):Notez que dans ce cas, le format du fichier audio doit être cohérent avec ce que contient le conteneur (c'est-à-dire si l'audio est au format AAC, vous devez le dire
audiofile.aac
). Vous pouvez utiliser laffprobe
commande pour voir quel codec vous avez, cela peut fournir des informations:Une façon possible d'analyser automatiquement le codec audio et de nommer le fichier audio en conséquence serait:
Remarques: les fichiers de sortie sont créés dans le sous-répertoire
output
qu'il crée au début (si nécessaire). Pour les autres codecs que mp3 et vorbis, il convertit l'audio en ogg. Ubuntu 14.04 n'a pas ffmpeg dans les référentiels standard, mais vous pouvez ajouter le référentiel ppa: mc3man / trusty-media et installer le package ffmpeg pour obtenir le logiciel nécessaire. Voir ici pour plus de détails.la source
ffprobe "$file" 2>&1 |sed -rn 's/.*Audio: (...), .*/\1/p'
; done Corrige cela.This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
ffmpeg
ouffprobe
ne sont pas disponibles pour Ubuntu 14.04 ou version ultérieure.ffmpeg
est revenu sur Ubuntu en 15.04 , et il ressemble à la balle Libavavconv
etavprobe
a été supprimé en 15.10 .Comme Nicolas Raoul l'a déclaré, cela doit être mis à jour. Voici la même ligne que roadmr a donnée mais en utilisant avconv à la place:
for vid in *.mp4; do avconv -i "$vid" "${vid%.mp4}.mp3"; done
la source