J'ai écrit un petit script bash pour extraire l'audio des fichiers vidéo en mode batch.
Le son est extrait de chaque fichier mp4 au format flac en utilisant avconv (et le codec flac).
#!/bin/sh
#
# Batch conversion of audio extraction from video
FOLDER_SRC="/home/Me/Music/TestBatchConv"
for myvid in $(find ${FOLDER_SRC} | grep mp4)
do
avconv -i $myvid -acodec flac "${myvid}.flac"
done
exit 0
Cela fonctionne bien, mais j'aimerais l'améliorer.
Le script détecte uniquement le format mp4. Est-il possible de reconnaître un fichier vidéo avec une commande (au lieu de tester chaque format vidéo)?
Merci pour les conseils.
Vous recherchez file
par exemple.
$ file -b 01--Frank_Sinatra--Close_to_You_And_More--Close_to_You.m4a
Audio file with ID3 version 2.4.0, contains: ISO Media, MPEG v4 system, iTunes AAC-LC
Il doit couvrir tous les types de supports bien connus. Si quelque chose manque, vous pouvez l'ajouter vous-même (voir man magic
).
Pour tester dans Bash, si $ file est un fichier vidéo, vous pouvez utiliser
[[ $(ffprobe -v quiet -select_streams v:0 -show_entries stream=codec_name -print_format csv=p=0 "$file") ]] && echo $file is video
ffprobe
est fourni par le package ffmpeg. 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.