Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 18/09/2008, à 09:12

Ras'

Re : Script Nautilus pour convertir/transcoder en mp3...

Se6 a écrit :

Ce n'est pas un ajout trivial la prise en charge d'arborescences!

Ca veut dire que tu ne compte pas essayer ou c'est juste qu'il te faudra du temps ?
Non pas que je veuille te mettre la pression, j'en aurais pas besoin avant un petit bout de temps... mais c'est pour savoir si je propsoe à quelqu'un d'autre ou si je m'y file wink
Merci bien wink


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#27 Le 19/09/2008, à 08:59

Se6

Re : Script Nautilus pour convertir/transcoder en mp3...

Ok, je regarde...

Se6.

Hors ligne

#28 Le 19/09/2008, à 13:14

Se6

Re : Script Nautilus pour convertir/transcoder en mp3...

Ok. C'est fait, les arborescences sont maitenant prises en charges.

Donc. On selectionne les fichiers et/ou repertoires dans Nautilus.
Ensuite on clique droit / Scripts / Convertir en mp3
Une fenetre de selection de repertoire s'ouvre alors. On ne peut selectionner qu'un seul repertoire ici. Celui ou les fichiers convertis seront mis.
Ensuite une fenetre de selection du debit s'ouvre.
Tout se passe ensuite en tache de fond.
Un fichier de log est cree: ~/mp3-convert.log (a consulter pour voir les eventuelles erreurs rencontrees)
ogg, flac, wav, mp3, ra, aac, etc. tout format reconnu par gstreamer peuvent etre convertis!

Convertir en autre chose qu'en mp3, changer les options de codage etc.. ne demande que des changements triviaux au script. A vous de l'adapter a vos besoins.

Se6.

A mettre dans un fichier ~/.gnome2/nautilus-scripts/Convertir en mp3
et a rendre executable.

#!/bin/bash
#
# dependancies: 
#   zenity 
#   gstreamer0.10-plugins-ugly 
#   gstreamer-tools
#
# Usage: To use in Nautilus
#   You select files and directorie in Nautilus, then you right click, script/Convert to mp3...
#   A first dialog will ask you where to put the converted files
#   A second one will let you select the bit rate
#   Then everything will happen in the background, no other info will be printed... 
#   A log file ~/mp3-convert.log will be created.
#

LOGFILE=~/mp3-convert.log
echo "" >$LOGFILE
exec 1>>$LOGFILE
exec 2>>$LOGFILE
           
LOC=$(zenity --file-selection --directory --title="Directory to receive the converted audio") || exit

RATE=$(zenity --list --radiolist \
        --height=400 \
        --text="bitrate in kb/s" --title="Select mp3 bit rate" \
        --column="Select" --column="Bit rate" \
        FALSE 32 FALSE 48 FALSE 56 FALSE 64 FALSE 80 FALSE 96 FALSE 112 TRUE 128 FALSE 160 FALSE 192 FALSE 224 FALSE 256 FALSE 320 \
        ) || exit

IFS=$'\n'

for SELECTED in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
    if [ -f "$SELECTED" ]
    then
        TARGET="$(basename $SELECTED)"
        TARGET=${TARGET%.*}.mp3
        if [ -e "$LOC/$TARGET" ]
        then
            echo -e "\n# Warning: $LOC/$TARGET already exist, did not overwrite it."
        else
            echo -e "\n#Processing $SELECTED -> $LOC/$TARGET"
            gst-launch filesrc location="$SELECTED" ! decodebin ! audioconvert ! lame bitrate=$RATE ! filesink location="$LOC/$TARGET"
        fi
    elif [ -d "$SELECTED" ]
    then
        TARGET_DIR="$LOC/${SELECTED##*/}"
        if [ ! -d "$TARGET_DIR" ]
        then
            mkdir -p "$TARGET_DIR"
        fi
        for FILENAME in $(find "$SELECTED" -type f -printf "%p\n")
        do
            THEDIR=${FILENAME%/*}
            THEDIR=${THEDIR:${#SELECTED}}
            THEDIR="$TARGET_DIR$THEDIR"
            if [ ! -d "$THEDIR" ]
            then
                mkdir -p "$THEDIR"
            fi
            TARGET="$(basename $FILENAME)"
            TARGET=${TARGET%.*}.mp3
            if [ -e "$THEDIR/$TARGET" ]
            then
                echo -e "\n#Warning: $THEDIR/$TARGET already exist, did not overwrite it."
            else
                echo -e "\n#Processing $FILENAME -> $THEDIR/$TARGET"
                gst-launch filesrc location="$FILENAME" ! decodebin ! audioconvert ! lame bitrate=$RATE ! filesink location="$THEDIR/$TARGET"
                if [ ! -s "$THEDIR/$TARGET" ]
                then
                    echo "# It probably was not audio, copying instead."
                    rm "$THEDIR/$TARGET"
                    cp -a -- "$FILENAME" "$THEDIR/$(basename $FILENAME)"
                fi
            fi
        done
    fi
done

Dernière modification par Se6 (Le 19/09/2008, à 13:15)

Hors ligne

#29 Le 19/09/2008, à 15:22

Ras'

Re : Script Nautilus pour convertir/transcoder en mp3...

Cool smile

Je teste ça dès que possible, dans le week end normalement smile
Merci beaucoup !

Je regarerais un peu le code aussi voir comment t'as fait, parce que du coup je me suis pas du tout posé la question de la technique à employer...


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#30 Le 19/09/2008, à 20:52

Se6

Re : Script Nautilus pour convertir/transcoder en mp3...

Petite amelioration... avec une barre de progression...

#!/bin/bash
#
# dependancies: 
#   zenity 
#   gstreamer0.10-plugins-ugly-multiverse
#   gstreamer-tools
#
# Usage: To use in Nautilus
#   You select files and directorie in Nautilus, then you right click, script/Convert to mp3...
#   A first dialog will ask you where to put the converted files
#   A second one will let you select the bit rate
#   Then a progression bar will appear. 
#   A log file ~/mp3-convert.log will be created.
#

LOGFILE=~/mp3-convert.log
           
LOC=$(zenity --file-selection --directory --title="Directory to receive the converted audio") || exit

RATE=$(zenity --list --radiolist \
        --height=400 \
        --text="bitrate in kb/s" --title="Select mp3 bit rate" \
        --column="Select" --column="Bit rate" \
        FALSE 32 FALSE 48 FALSE 56 FALSE 64 FALSE 80 FALSE 96 FALSE 112 TRUE 128 FALSE 160 FALSE 192 FALSE 224 FALSE 256 FALSE 320 \
        ) || exit

(        
IFS=$'\n'
TOTAL=0
NB=0

# Checking how many files there are to process
for SELECTED in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
    if [ -f "$SELECTED" ]
    then
        let TOTAL+=1
    elif [ -d "$SELECTED" ]
    then
        for FILENAME in $(find "$SELECTED" -type f -printf "%p\n")
        do
            let TOTAL+=1
        done
    fi
done

function show_progress
{
   let NB+=100/TOTAL
   echo $NB
}

for SELECTED in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
    if [ -f "$SELECTED" ]
    then
        show_progress
        TARGET="$(basename $SELECTED)"
        TARGET=${TARGET%.*}.mp3
        if [ -e "$LOC/$TARGET" ]
        then
            echo -e "\nWarning: $LOC/$TARGET already exist, did not overwrite it."
        else
            echo -e "\n#Processing $(basename $SELECTED)\n$SELECTED -> $LOC/$TARGET"
            gst-launch filesrc location="$SELECTED" ! decodebin ! audioconvert ! lame bitrate=$RATE ! filesink location="$LOC/$TARGET" 2>&1
        fi
    elif [ -d "$SELECTED" ]
    then
        TARGET_DIR="$LOC/${SELECTED##*/}"
        if [ ! -d "$TARGET_DIR" ]
        then
            mkdir -p "$TARGET_DIR"
        fi
        for FILENAME in $(find "$SELECTED" -type f -printf "%p\n")
        do
            show_progress
            THEDIR=${FILENAME%/*}
            THEDIR=${THEDIR:${#SELECTED}}
            THEDIR="$TARGET_DIR$THEDIR"
            if [ ! -d "$THEDIR" ]
            then
                mkdir -p "$THEDIR"
            fi
            TARGET="$(basename $FILENAME)"
            TARGET=${TARGET%.*}.mp3
            if [ -e "$THEDIR/$TARGET" ]
            then
                echo -e "\nWarning: $THEDIR/$TARGET already exist, did not overwrite it."
            else
                echo -e "\n#Processing $(basename $FILENAME)\n$FILENAME -> $THEDIR/$TARGET"
                gst-launch filesrc location="$FILENAME" ! decodebin ! audioconvert ! lame bitrate=$RATE ! filesink location="$THEDIR/$TARGET" 2>&1
                if [ ! -s "$THEDIR/$TARGET" ]
                then
                    echo "It probably was not audio, copying instead."
                    rm "$THEDIR/$TARGET"
                    cp -a -- "$FILENAME" "$THEDIR/$(basename $FILENAME)"
                fi
            fi
        done
    fi
done

echo 100
) | tee $LOGFILE | zenity --progress --auto-close

EDIT 1: J'ai supprime deux lignes qui n'auraient pas du etre la...
EDIT 2: Dependance corrigee.

Dernière modification par Se6 (Le 22/09/2008, à 08:50)

Hors ligne

#31 Le 20/09/2008, à 19:53

Ras'

Re : Script Nautilus pour convertir/transcoder en mp3...

Marche pas avec le flac apparement...
le script marche sans problème, étonnament vite d'ailleurs, mais les fichiers créés sont aussi en flac (donc ca doit aller vite parce qu'il encode pas j'imagine...)

ras@ras-laptopoulos:~/.gnome2/nautilus-scripts$ tail /home/ras/.xsession-errors
rm: ne peut enlever `/home/ras/Bureau/Peace Monger/11 - Meaning of Dub.mp3': Aucun fichier ou dossier de ce type
rm: ne peut enlever `/home/ras/Bureau/Peace Monger/08 - Marathon.mp3': Aucun fichier ou dossier de ce type
rm: ne peut enlever `/home/ras/Bureau/Peace Monger/10 - Globy Dub.mp3': Aucun fichier ou dossier de ce type
rm: ne peut enlever `/home/ras/Bureau/Peace Monger/04 - Irie Woman.mp3': Aucun fichier ou dossier de ce type
rm: ne peut enlever `/home/ras/Bureau/Peace Monger/02 - Namibia.mp3': Aucun fichier ou dossier de ce type
rm: ne peut enlever `/home/ras/Bureau/Peace Monger/09 - True Dub.mp3': Aucun fichier ou dossier de ce type
rm: ne peut enlever `/home/ras/Bureau/Peace Monger/06 - Family Affair.mp3': Aucun fichier ou dossier de ce type
rm: ne peut enlever `/home/ras/Bureau/Peace Monger/05 - Living for Dub.mp3': Aucun fichier ou dossier de ce type
rm: ne peut enlever `/home/ras/Bureau/Peace Monger/01 - Channel 77.mp3': Aucun fichier ou dossier de ce type
rm: ne peut enlever `/home/ras/Bureau/Peace Monger/12 - Peace Monger.mp3': Aucun fichier ou dossier de ce type

???

Pas du tout le temps de regarder ça donc si t'as le temps...
Dommage j'en aurais eu besoin ce soir :\


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#32 Le 21/09/2008, à 21:27

Se6

Re : Script Nautilus pour convertir/transcoder en mp3...

Marche pas avec le flac apparement...

Je ne comprends pas. Ca marche ici. Que dit ~/mp3-convert.log ?

Seb.

Hors ligne

#33 Le 21/09/2008, à 23:15

Ras'

Re : Script Nautilus pour convertir/transcoder en mp3...

J'avais oublié des dépendances big_smile

Mais j'ai quand même un problème :

#Processing 12 - Peace Monger.flac
/home/ras/Musique/Flac/New/Peace Monger/12 - Peace Monger.flac -> /home/ras/Bureau/Peace Monger/12 - Peace Monger.mp3
AVERTISSEMENT : pipeline erroné : pas d'élément « lame »
It probably was not audio, copying instead.
100

Pareil pour toutes les chansons...


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#34 Le 22/09/2008, à 08:49

Se6

Re : Script Nautilus pour convertir/transcoder en mp3...

AVERTISSEMENT : pipeline erroné : pas d'élément « lame »

C'est un probleme de dependances... En fait c'est ma faute, lame ne fait pas partie de gstreamer0.10-plugins-ugly mais de gstreamer0.10-plugins-ugly-multiverse.

Le meta paquet ubuntu-restricted-extras installe entre autres:
gstreamer0.10-ffmpeg, gstreamer0.10-pitfdll, gstreamer0.10-plugins-bad, gstreamer0.10-plugins-bad-multiverse, gstreamer0.10-plugins-ugly, gstreamer0.10-plugins-ugly-multiverse

Seb.

Hors ligne

#35 Le 22/09/2008, à 10:09

Ras'

Re : Script Nautilus pour convertir/transcoder en mp3...

Cool smile je teste ça de ce pas wink

Ca à l'air de marcher, du coup c'est un peu plus long, mais ça à l'air de rester acceptable niveau temps d'encodage wink
Ensuite j'ai pas tout déchiffré mais j'ai l'impression que le script ne marcherais pas si on à un de la musique dans un dossier dans un dossier dans un dossier... mais c'est assez rare big_smile


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#36 Le 22/09/2008, à 10:49

Se6

Re : Script Nautilus pour convertir/transcoder en mp3...

j'ai l'impression que le script ne marcherais pas si on à un de la musique dans un dossier dans un dossier dans un dossier...

Si justement ca marche! Et les fichiers qui ne sont pas de l'audio sont copies egalement...

Seb.

Hors ligne

#37 Le 22/09/2008, à 13:08

Ras'

Re : Script Nautilus pour convertir/transcoder en mp3...

Ah oui au temps pour moi, j'avais pas testé, juste regardé vite fait comment c'était écris...
Sinon tu peux modifier mp3-convert.log pour .mp3-convert.log, vu qu'on est pas censé s'en servir, ou rarement, autant l'avoir caché wink
et c'est quoi ce fichier "progress" ?


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#38 Le 22/09/2008, à 13:39

Se6

Re : Script Nautilus pour convertir/transcoder en mp3...

c'est quoi ce fichier "progress" ?

C'est un oubli, un essai lors du developpement. Je l'avais d'ailleurs retire du code dans mon message precedent:

EDIT 1: J'ai supprime deux lignes qui n'auraient pas du etre la...

Seb.

Hors ligne

#39 Le 06/10/2008, à 20:02

yanemail

Re : Script Nautilus pour convertir/transcoder en mp3...

Et avec AUDIO SOUND CONVERTER ?


Je choisis un dossier aux multiples sous dossiers, je lui dis ce que je veux en sortie et il transforme gentillement.



Bien sur on peut pas faire de conversions en fonction du type, etc... Mais ca marche bien.

Hors ligne

#40 Le 29/10/2008, à 19:02

Ras'

Re : Script Nautilus pour convertir/transcoder en mp3...

Arg...
Le script ne laisse pas les IDtags sur les fichiers après encodage... Je croyais que c'était mon lecteur mp3 qui lisait pas ce type d'IDtag mais après encodage, même gmusicbrowser ne les lit plus...
Faudrait checker dans les options du soft de conversion...

Je vais me tourner vers audiosoundconverter en attendant pour voir...


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#41 Le 29/10/2008, à 21:04

Se6

Re : Script Nautilus pour convertir/transcoder en mp3...

Le script ne laisse pas les IDtags sur les fichiers après encodage...

Oui en effet. Ceci dit ce n'est pas dur a rajouter. Par exemple en installant le deb situe sur cette page: http://home.wanadoo.nl/squell/id3.html
et ensuite apres l'appel de gst-launch, ajouter la ligne suivante:

id3 -D "$1" -1 -2 "$2" 2>&1

Seb.

Hors ligne

#42 Le 29/10/2008, à 21:05

Ras'

Re : Script Nautilus pour convertir/transcoder en mp3...

Tu devrais rajouter ça sur le premier post wink
C'est quand même très important les idtags !


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#43 Le 29/10/2008, à 21:20

Se6

Re : Script Nautilus pour convertir/transcoder en mp3...

Oups, je m'etais trompe, le script que j'ai est different de celui ici... ok, je mets a jour le 1er post.

Seb.

Dernière modification par Se6 (Le 29/10/2008, à 21:26)

Hors ligne

#44 Le 03/11/2008, à 09:42

Ras'

Re : Script Nautilus pour convertir/transcoder en mp3...

Hum...
Ben j'ai ça :

#Processing 11 - Marley.flac
/home/ras/Musique/Flac/Danakil/Dialogue de Sourds/11 - Marley.flac -> /home/ras/Bureau/Danakil/Dialogue de Sourds/11 - Marley.mp3
Définition du pipeline à PAUSED...
Le pipeline est en phase de PREROLL...
Le pipeline a terminé la phase PREROLL...
Passage du pipeline à la phase PLAYING...
New clock: GstSystemClock
EOS reçu de l'élément « pipeline0 ».
Execution ended after 18780351047 ns.
Définition du pipeline à PAUSED...
Définition du pipeline à READY (prêt)...
Définition du pipeline à NULL...
Libération du pipeline (FREE)...
id3: note: could not read tags from /home/ras/Musique/Flac/Danakil/Dialogue de Sourds/11 - Marley.flac
24

Du coup à marche pô sad
Pourtant gmb lis mes tags sans problèmes, tags créés avec rhythmbox lors de l'encodage du cd original :\

EDIT : et c'est pareil pour toutes les autres chansons, j'ai mis une pour exemple mais sur deux albums y'a pas une piste qui marche...

Dernière modification par Ras' (Le 03/11/2008, à 09:43)


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#45 Le 03/11/2008, à 10:30

Se6

Re : Script Nautilus pour convertir/transcoder en mp3...

Ca doit être une limitation du prog utilisé ici pour manipuler les les tags (http://home.wanadoo.nl/squell/id3.html). ID3v2.2 tags ne marchent pas par example.

Il faudrait chercher un autre prog de manipulation des tags.. ensuite mettre à jour le script pour l'utiliser est vraiment trivial.

Je suis débordé de boulot et n'ai pas le temps de regarder ca dans les trois semaines qui viennent.

Seb.

Hors ligne

#46 Le 03/11/2008, à 11:02

Ras'

Re : Script Nautilus pour convertir/transcoder en mp3...

Arf, je regarderais ça alors wink


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#47 Le 07/11/2008, à 17:03

Ras'

Re : Script Nautilus pour convertir/transcoder en mp3...

Je trouve pas trop comment faire, enfin peut être qu'il faudrait se servir du paquet id3v2 mais c'est chiant à utiliser... :\

Entre temps j'ai essayé xcfa et un autre truc mais rien ne fait ce que je veux, seul ton script avec la gestion des tags me ravirait... je continue de creuser... mais si quelqu'un dans le coin saurait comment faire ?


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#48 Le 11/11/2008, à 15:15

gwado

Re : Script Nautilus pour convertir/transcoder en mp3...

Je tombe sur ça :

1
#Processing 01.Gibraltar par Abd Al Malik.ogg
/home/****/Musique/Abd Al Malik/2006 - Gibraltar/01.Gibraltar par Abd Al Malik.ogg -> /home/****/Musique/Abd Al Malik/2006 - Gibraltar/01.Gibraltar par Abd Al Malik.mp3
Définition du pipeline à PAUSED...
Le pipeline est en phase de PREROLL...
Le pipeline a terminé la phase PREROLL...
Passage du pipeline à la phase PLAYING...
New clock: GstSystemClock
EOS reçu de l'élément « pipeline0 ».
Execution ended after 22238732506 ns.
Définition du pipeline à PAUSED...
Définition du pipeline à READY (prêt)...
Définition du pipeline à NULL...
Libération du pipeline (FREE)...
id3: note: could not read tags from /home/****/Musique/Abd Al Malik/2006 - Gibraltar/01.Gibraltar par Abd Al Malik.ogg
97
100

Ça marche quand même... mais d'où vient ce message ? est-ce normal ?

Hors ligne

#49 Le 24/11/2008, à 11:05

Ras'

Re : Script Nautilus pour convertir/transcoder en mp3...

C'est normal, je sais pas pourquoi Se6 à décidé de l'afficher à la fin, perso je l'ai enlevé.
Pour l'enlever commente la dernière ligne (ou supprime la)

#!/bin/bash
#
# dependancies: 
#   zenity 
#   gstreamer0.10-plugins-ugly-multiverse
#   gstreamer-tools
#   the deb at http://home.wanadoo.nl/squell/id3.html for and id3 command line tool.
#
# Usage: To use in Nautilus
#   You select files and directorie in Nautilus, then you right click, script/Convert to mp3...
#   A first dialog will ask you where to put the converted files
#   A second one will let you select the bit rate
#   Then a progression bar will appear. 
#   A log file ~/mp3-convert.log will be created.
#

LOGFILE=~/mp3-convert.log
           
LOC="/home/ras/Musique/Archos"
# $(zenity --file-selection --directory --title="Directory to receive the converted audio") || exit

RATE="256"
#$(zenity --list --radiolist \
#        --height=400 \
#        --text="bitrate in kb/s" --title="Select mp3 bit rate" \
#        --column="Select" --column="Bit rate" \
#        FALSE 32 FALSE 48 FALSE 56 FALSE 64 FALSE 80 FALSE 96 FALSE 112 TRUE 128 FALSE 160 FALSE 192 FALSE 224 FALSE 256 FALSE 320 \
#        ) || exit

(        
IFS=$'\n'
TOTAL=0
NB=0

# Checking how many files there are to process
for SELECTED in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
    if [ -f "$SELECTED" ]
    then
        let TOTAL+=1
    elif [ -d "$SELECTED" ]
    then
        for FILENAME in $(find "$SELECTED" -type f -printf "%p\n")
        do
            let TOTAL+=1
        done
    fi
done

function is_ogg
{
    file -b "$1" | grep 'Vorbis' || echo $1 | grep -i '\.ogg$'
}

function is_flac
{
    file -b "$1" | grep 'FLAC' || echo $1 | grep -i '\.flac$'
}

function get_metatags
{

    if (is_ogg "$1")
        then
        artist_name=`ogginfo "$1" | grep ARTIST | cut -d \= -f 2`
        album_name=`ogginfo "$1" | grep ALBUM | cut -d \= -f 2`
        song_name=`ogginfo "$1" | grep TITLE | cut -d \= -f 2`
        track_number=`ogginfo "$1" | grep TRACKNUMBER | cut -d \= -f 2`
    fi
    if (is_flac "$1")
    then
         artist_name=`metaflac --show-tag=artist "$1" | cut -d \= -f 2`
         album_name=`metaflac --show-tag=album "$1" | cut -d \= -f 2`
         song_name=`metaflac --show-tag=title "$1" | cut -d \= -f 2`
         track_number=`metaflac --show-tag=tracknumber "$1" | cut -d \= -f 2`
    fi

}

function write_tags
{
        if [ "$artist_name" ]
        then id3 -a "$artist_name" $1
        fi
        if [ "$album_name" ]
        then id3 -A "$album_name" $1
        fi
        if [ "$song_name" ]
        then id3 -t "$song_name" $1
        fi
        if [ "$track_number" ]
        then id3 -T "$track_number" $1
        fi
unset artist_name
unset album_name
unset song_name
unset track_number
}


function audio-convert
{
    echo -e "#Processing $(basename $1)"
    echo "$1 -> $2"
    gst-launch filesrc location="$1" ! decodebin ! audioconvert ! lame bitrate=$RATE ! filesink location="$2" 2>&1
    get_metatags $1
    write_tags $2
}    

function show_progress
{
   let NB+=97/TOTAL
   echo $NB
}

for SELECTED in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
    echo 1
    if [ -f "$SELECTED" ]
    then
        TARGET="$(basename $SELECTED)"
        TARGET=${TARGET%.*}.mp3
        if [ -e "$LOC/$TARGET" ]
        then
            echo -e "\nWarning: $LOC/$TARGET already exist, did not overwrite it." >$LOGFILE
        else
            audio-convert "$SELECTED" "$LOC/$TARGET"
        fi
        show_progress
    elif [ -d "$SELECTED" ]
    then
        TARGET_DIR="$LOC/${SELECTED##*/}"
        if [ ! -d "$TARGET_DIR" ]
        then
            mkdir -p "$TARGET_DIR"
        fi
        for FILENAME in $(find "$SELECTED" -type f -printf "%p\n")
        do
            THEDIR=${FILENAME%/*}
            THEDIR=${THEDIR:${#SELECTED}}
            THEDIR="$TARGET_DIR$THEDIR"
            if [ ! -d "$THEDIR" ]
            then
                mkdir -p "$THEDIR"
            fi
            TARGET="$(basename $FILENAME)"
            TARGET=${TARGET%.*}.mp3
            if [ -e "$THEDIR/$TARGET" ]
            then
                echo -e "\nWarning: $THEDIR/$TARGET already exist, did not overwrite it." >$LOGFILE
            else
                audio-convert "$FILENAME" "$THEDIR/$TARGET"
                if [ ! -s "$THEDIR/$TARGET" ]
                then
                    echo "It probably was not audio, copying instead."
                    rm "$THEDIR/$TARGET"
                    cp -a -- "$FILENAME" "$THEDIR/$(basename $FILENAME)"
                fi
            fi
            show_progress
        done
    fi
done

echo 100
) | tee $LOGFILE | zenity --progress --auto-close

# zenity --text-info --title='Conversion log' --filename=$LOGFILE

EDIT : n'utilisez pas ce script si vous n'y connaissez rien, j'ai modifié des trucs qui font que ça marchera pas chez vous, c'est juste pour montrer à Se6.

Dernière modification par Ras' (Le 02/04/2009, à 12:15)


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#50 Le 02/04/2009, à 06:59

Ras'

Re : Script Nautilus pour convertir/transcoder en mp3...

J'ai l'impression que je suis le seul posteur dans ce topic ^^

Enfin bon, c'était juste pour dire qu'il y a un truc qui marche pas big_smile

A un moment le script fait :

if [ ! -s "$THEDIR/$TARGET" ]
                then
                    echo "It probably was not audio, copying instead."

Donc je me suis renseigné sur ce -s, et ça veut dire :
-s entrée vraie si entrée existe et sa taille est différente de zéro.

or des fichiers peuvent ne pas avoir une taille nulle sans être des fichiers audio (typiquement les jaquettes)...
Je comprennais pas pourquoi à chaque fois il me renommait mes jaquettes en mp3 et les rendait illisibles...


Du coup je vais chercher une autre méthode pour changer ça, faudrait un truc qui vérifie par rapport à l'extension du fichier wink Mais là j'ai la flemme de réfléchir ^^


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne