Shell le bien pour mes vidéos

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 …

Leave a Reply

You must be logged in to post a comment.

Powered by Maribol IMDB

AnteEffects is Stephen Fry proof thanks to caching by WP Super Cache