Shell le bien pour mes vidéos
Lundi, avril 26th, 2010 - 20:38 - Informatique
Dans la catégorie «Bash c’est bien, les Shellscripts aussi», je vous présente le renommeur de fichiers MOD. Ou comment renommer avec la date de prise de séquence un fichier vidéo d’un caméscope EVERIO GZ à disque dur qui ne contient que des fichiers aux formats exotiques
Le petit bout de script en question :
#!/bin/bash rename() { f="${1%.avi}.MOI" echo -n "Treating $f : " if [ ! -f "$f" ] ; then echo "Error !" return fi year=$((0x$(hexdump -s 0x06 -n 2 -v -e '2/1 "%02X"' $f))) month=$((0x$(hexdump -s 0x08 -n 1 -v -e '/1 "%02X"' $f))) day=$((0x$(hexdump -s 0x09 -n 1 -v -e '/1 "%02X"' $f))) hour=$((0x$(hexdump -s 0x0A -n 1 -v -e '/1 "%02X"' $f))) minute=$((0x$(hexdump -s 0x0B -n 1 -v -e '/1 "%02X"' $f))) sec=$((0x$(hexdump -s 0x0C -n 2 -v -e '2/1 "%02X"' $f)/1000)) #duration=$((0x$(hexdump -s 0x0E -n 4 -v -e '4/1 "%02X"' $f))) name=$(printf %04d%02d%02d-%02d%02d%02d $year $month $day $hour $minute $sec) mv "$1" "$name.avi" && echo -n " AVI OK " mv "$f" "$name.moi" && echo -n " MOI OK " echo } for f in *.avi do rename "$f" done
Je traite actuellement les fichiers « à la main », c’est à dire que ce sont des fichiers AVI PAL DV que je renomme, en laissant à côté les fichiers MOI de métadonnées.
Axes d’améliorations possibles :
- Utilisation de ffmpeg pour la conversion du MOD vers MPG ou AVI
- Scan du caméscope pour y récupérer les fichiers plutot que de tout devoir copier/déplacer
- Un ptit journal de traitement, histoire de savoir ce qui a été fait
- Meilleure utilisation de hexdump, car ça me plait pas beaucoup en l’état actuel des choses …
