PDA

Afficher la version complète : [Scripts] Minatures et conversion ogg>mp3



Temet
25/10/2006, 21h37
J'en ai bien fait profiter d'autres, si ça peut en intéresser après tout ...

La premier sert à générer ce genre d'images > http://goondy.free.fr/Images/gentop-thumb.png

Ca peut servir pour les forums, vous pouvez aussi redimensionner toutes les images d'un dossier en faisant "nomduscript *.png" (ou *.jpg, *.*)
Globalement il devrait être optimisé vu qu'on m'a fait chier pour changer ceci et celà ^^ (nan mais en fait c'est bien, ça m'a fait un peu apprendre des trucs, vu que le bash script ... euh bah j'y connais pas grand chose).

Ah ouais, il vous faut imagemagick.


#!/bin/bash

# thanks to Remi, Anvil & NaiosKAE The Korrigan
# verifying usage
if [ "$#" = "0" -o "$1" = "-h" -o "$1" = "--help" ]; then
echo Usage : $(basename $0) image [ image ... ]
echo Used to generate thumbnails of a list of images.
exit 1
fi

# loop that enables the treatment of a list of images
for i in "$@"; do
# verifying file
if ! [ -f "$i" ]; then
echo "$i" : file does not exist
exit 1
fi

# get image infos
iinfos=($(identify -format "%m %wx%h %e %b" "$i"))

itype=${iinfos[0]}
resolution=${iinfos[1]}
extension=${iinfos[2]}
isize=${iinfos[3]}
name=$(basename "$i" .${iinfos[2]})

# convert size to human readable format
if [ $isize -ge 1048576 ]; then
sizeh="$(( isize / 1048576 )) Mo"
elif [ $isize -ge 1024 ]; then
sizeh="$(( isize / 1024 )) Ko"
else
sizeh="$isize o"
fi

# resize image and add infos
convert "$i" -resize 300x182 -gravity South -background Black -fill \
white -splice 0x18 -draw "text 0,2 '$itype : $resolution - $sizeh'" \
"$name"-thumb.$extension
done

-----------------------------

Le deuxième ne servira sans doute à personne, m'enfin bon, y a une petite histoire derrière.
Mon baladeur ne lit pas les ogg. Jusqu'à présent je codais mes CDs en mp3 à cause de ça. Toutefois, mon coté libriste gagnant peu à peu du terrain, j'ai encodé mes derniers CDs en ogg.

J'ai donc fait un petit script pour convertir les ogg en mp3. De plus, mon baladeur lit les chansons par ordre alphabétique, il faut donc le numéro de piste en premier pour avoir les chansons dans l'ordre.

Le script s'utilise des façons suivantes (pour peu que vous l'ayez nommé "ibeadogg") :


ibeadogg chanson1.ogg chanson2.ogg chanson3.ogg ...
ibeadogg *.ogg
ibeadogg répertoire1 répertoire2 chanson1.ogg chanson2.ogg ...
Les fichiers sont encodés dans le home, dans un dossier "artist - titre de l'album".


#!/bin/bash

# used to convert ogg files in mp3
# requires ogg123, lame & taginfo

# usage
if [ "$#" = "0" -o "$1" = "-h" -o "$1" = "--help" ]; then
echo "Usage : $(basename $0) file [ file ... ]"
echo "Used to convert a list of ogg files in mp3. Directories containing ogg files are allowed."
exit 1
fi

# function that converts an ogg file in a mp3 file
oggtomp3()
{
ftype=$(file -b "$1" | awk -F", " '{print $1}') # type of the file

if [ "$ftype" = "Ogg data" ]; then
echo "Processing : $1"

artist=$(taginfo "$1" | grep ARTIST | tr -d "\"" | awk -F"=" '{print $2}')
album=$(taginfo "$1" | grep ALBUM | tr -d "\"" | awk -F"=" '{print $2}')
title=$(taginfo "$1" | grep TITLE | tr -d "\"" | awk -F"=" '{print $2}')
track=$(taginfo "$1" | grep TRACK | tr -d "\"" | awk -F"=" '{print $2}')

if ! [ -d "$HOME/$artist - $album (mp3)" ]; then
mkdir "$HOME/$artist - $album (mp3)"
fi

if [ $track -le 9 ]; then
outfile="$HOME/$artist - $album (mp3)/0$track - $artist - $title.mp3"
else
outfile="$HOME/$artist - $album (mp3)/$track - $artist - $title.mp3"
fi

ogg123 -q --device=wav "$1" -f - | lame --quiet -m j -q 5 --cbr -b 128 \
--tt "$title" --ta "$artist" --tl "$album" --tn "$track" - "$outfile"
else
echo "File is not ogg file, skipping it."
fi
}

for i in "$@"; do
# checking file
if [ -d "$i" ]; then
# processing a directory
for j in "$i"/*.ogg; do
if [ -f "$j" ]; then
oggtomp3 "$j"
fi
done
elif [ -f "$i" ]; then
# processing a file
oggtomp3 "$i"
else
echo "File does not exist, skipping it."
fi
done

echo "Done."

offworld
26/10/2006, 15h27
Bien sympa