ubuntu-fr

Communauté francophone des utilisateurs d'Ubuntu

Annonce

Les Ubuntu-partys sont l'occasion pour beaucoup d'entre vous d'acquérir les goodies Ubuntu-fr faits par nos petites mains avec amour.
Pour tous les autres, fini le désespoir de les manquer wink Il est désormais possible de vous procurer l'objet de votre choix grâce à la boutique en ligne, commune à Framasoft et Ubuntu-fr. Vous pourrez déjà y trouver mugs, t-shirts et, bien sûr, les Framakey Ubuntu-fr Remix.

#1 Le 17/01/2006, à 21:12

[Résolu] Recherche aide pour un bout de script nautilus

Je suis en train de faire un script pour convertir les pistes son d'un dvd en wav. Voici un extrait du code :

Code:

nbchap=$[$chapfin-$chapdeb+1]
chap=$chapdeb
(while [ $chap -le $chapfin ];do
    let "compteur += 1"
    echo "# $bepatient : $compteur / $nbchap"
    mplayer -vo null -ao pcm:file=$folder\/$titre-$chap\.wav -chapter $chap\-$chap dvd://$titre
    chap=$[$chap+1]
    let "progress = compteur*100/nbchap"
    echo $progress
done
) |
zenity --progress --auto-close --title="$title" --text "$bepatient" --percentage=0

J'ai fini à un léger détail près : la barre de progression passe de 0 à ~80% dès le début et celle-ci ne bouge plus, je n'arrive pas à comprendre ce qui cloche, quelqu'un aurait-il une idée ? Merci à la communauté Ubuntu.

Hors ligne

 

#2 Le 18/01/2006, à 08:32

Re: [Résolu] Recherche aide pour un bout de script nautilus

up

Hors ligne

 

#3 Le 18/01/2006, à 21:36

Re: [Résolu] Recherche aide pour un bout de script nautilus

J'ai modifié pour simplifier.

Code:

nbchap=$[$chapfin-$chapdeb+1]
mkdir $folder
(for ((chap=chapdeb; chap <= chapfin ; chap++));do
    echo "# $bepatient : $[$chap-$chapdeb+1] / $nbchap"
    mplayer -vo null -ao pcm:file=$folder\/$titre-$chap\.wav -chapter $chap\-$chap dvd://$titre
    let "progress = (chap-chapdeb)*100/nbchap"
    echo $progress
done
) |
zenity --progress --auto-close --title="$title" --percentage=0

Mais il y a toujours le même problème !

Hors ligne

 

#4 Le 18/01/2006, à 21:43

Re: [Résolu] Recherche aide pour un bout de script nautilus

Encore plus simple toujours une barre qui va a ~80% et qui y reste ! hmm

Code:

nbchap=$[$chapfin-$chapdeb+1]
mkdir $folder
(for ((chap=chapdeb; chap <= chapfin ; chap++));do
    echo "# $bepatient : $[$chap-$chapdeb] / $nbchap"
    mplayer -vo null -ao pcm:file=$folder\/$titre-$chap\.wav -chapter $chap\-$chap dvd://$titre
done
)|zenity --progress --auto-close --title="$title" --percentage=0

Hors ligne

 

#5 Le 20/01/2006, à 17:59

Re: [Résolu] Recherche aide pour un bout de script nautilus

essaye juste par curiosité de mettre le

Code:

zenity --progress --auto-close --title="$title" --percentage=0

avant le done

parce que ca parait normal la barre avance en fonction des actions effectuées et donc quand dans ton script tu arrives à la ligne de la barre de progression tout le travail est terminé alors la barre passe directement à 80% après pour te dire prkoi 80 je ne sais pa

mais ca me paraitrai logique de déplacer cette ligne audessus du done

essaye et donne moi le résultat mais je ne suis sur de rien

Hors ligne

 

#6 Le 20/01/2006, à 19:06

Re: [Résolu] Recherche aide pour un bout de script nautilus

La fenêtre n'apparait plus du tout lorsque je fais ça ! Merci d'avoir tenté le coup avec cette proposition.

Hors ligne

 

#7 Le 21/01/2006, à 10:18

Re: [Résolu] Recherche aide pour un bout de script nautilus

une idée comme ca wink
si zenity ne comprend pas ce que tu lui envoie ?
je m'explique
essaie avec juste :
progres=$(( chap - chapdeb ))
echo $progres

Hors ligne

 

#8 Le 21/01/2006, à 10:26

Re: [Résolu] Recherche aide pour un bout de script nautilus

Ca fait toujours pareil. (avec progress ou progres, d'ailleurs)

progress=sacomensaménervé : donne la meme chose aussi.

Nous pouvons donc en conclure que le problème ne viens pas de :

Code:

 )|    zenity --progress --auto-close --title="$title" --text "$bepatient" --percentage=0

Mais bien de :

Code:

let "progress = compteur*100/nbchap"
echo $progress

Je pense que tu m'envois sur la bonne piste

Hors ligne

 

#9 Le 21/01/2006, à 10:28

Re: [Résolu] Recherche aide pour un bout de script nautilus

Si vous voulez pouvoir faire des test voici le script complet (tout fonctionne sauf la barre de progression) :

Code:

#!/bin/bash 
#################################################
#    WHAT is dvd2wav ?
# Script to convert DVD audio chapters to wav. Ideal for concerts DVD.

#################################################
#        INFO
# Author : yeKcim - yeknan@yahoo.fr - http://yeknan.free.fr
# Licence : GNU GPL
# Dependency
#    zenity
#    mplayer (mplayer-nogui if you don't want to install user interface)
# Based on
#    WOM_audioconverter
#    NIS
#    http://www.letare.net/linux/install_system.html#rippSonDvd
# History
#    15.01.2006 : v0.1 : First public version
# Install
#     Put on ~/.gnome2/nautilus-scripts/
#    In a console : chmod u+x ~/.gnome2/nautilus-scripts/dvd2wav
# Todo
#    Barre de progression fonctionnelle (Pourquoi ça ne fonctionne pas ?)
#    Demander le nom du concert pour le mettre comme nom de dossier (?)

version="0.1"
#################################################
#    TRADUCTIONS
        ###### Default = English #####
        title="dvd2wav "$version""
        nobin="Program mplayer is not installed, please install !"
        titlechoice="Title to convert ?"
        chapdebchoice="First chapter to convert ?"
        chapfinchoice="Last chapter to convert ?"
        bepatient="Work in progress"
    case $LANG in
        ######## Français ########
        fr* )
        title="dvd2wav "$version""
        nobin="Le programme mplayer n'est pas installé, veuillez l'installer !"
        titlechoice="Titre à convertir ?"
        chapdebchoice="Premier chapitre à convertir ?"
        chapfinchoice="Dernier chapitre à convertir ?"
        bepatient="Travail en cours" ;;
    esac

#################################################
#    PROGRAMME
######### Test dépendance ##########
which mplayer 2>/dev/null
if [ $? != 0 ]
then
    zenity --error --title="$title" --text="$nobin"
    exit 0
fi

############ Variables #############
folder=~/dvd2wav # dossier de travail

 #### Titre ? #####
    while [ ! "$titre" ] # Réafficher la fenêtre tant que l'utilisateur n'a pas fait de choix
    do
        titre=`zenity --entry --title "$title" --text "$titlechoice" --entry-text "1"`
        ###### Choix -> Sortie boucle ######
        if  [ $? != 0 ]; then
            exit 1
        fi
        [ $? -ne 0 ] && exit 2 # Annulation
    done
    
 #### Chapitre de début ? #####
    while [ ! "$chapdeb" ] # Réafficher la fenêtre tant que l'utilisateur n'a pas fait de choix
    do
        chapdeb=`zenity --entry --title "$title" --text "$chapdebchoice" --entry-text "1"`
        ###### Choix -> Sortie boucle ######
        if  [ $? != 0 ]; then
            exit 1
        fi
        [ $? -ne 0 ] && exit 2 # Annulation
    done

 #### Chapitre de fin ? #####
    while [ ! "$chapfin" ] # Réafficher la fenêtre tant que l'utilisateur n'a pas fait de choix
    do
        chapfin=`zenity --entry --title "$title" --text "$chapfinchoice" --entry-text "2"`
        ###### Choix -> Sortie boucle ######
        if  [ $? != 0 ]; then
            exit 1
        fi
        [ $? -ne 0 ] && exit 2 # Annulation
    done


############ Programme #############
nbchap=$[$chapfin-$chapdeb+1]
chap=$chapdeb
mkdir $folder
(while [ $chap -le $chapfin ];
do
    let "compteur += 1"
    echo "# $bepatient : $compteur / $nbchap"
    mplayer -vo null -ao pcm:file=$folder\/$titre-$chap\.wav -chapter $chap\-$chap dvd://$titre
    chap=$[$chap+1]
    let "progress = compteur*100/nbchap"
    echo $progress
done)|    zenity --progress --auto-close --title="$title" --text "$bepatient" --percentage=0

Hors ligne

 

#10 Le 21/01/2006, à 10:47

Re: [Résolu] Recherche aide pour un bout de script nautilus

retire
echo "# $bepatient : $compteur / $nbchap"
de ta boucle a la fin
zenity recupere ce que tu lui envoie avant le |
la tu lui envoie 2 info, dont du texte
echo $progress devrait suffir pour ta barre
le reste tu l'enregistre dans une variable et tu fait --text=$tonmessage

Hors ligne

 

#11 Le 21/01/2006, à 10:56

Re: [Résolu] Recherche aide pour un bout de script nautilus

Code:

(while [ $chap -le $chapfin ];
do
    mplayer -vo null -ao pcm:file=$folder\/$titre-$chap\.wav -chapter $chap\-$chap dvd://$titre
    chap=$[$chap+1]
    let "progress = compteur*100/nbchap"
    let "compteur += 1"
done)|    zenity --progress --auto-close --title="$title" --text "$bepatient" --percentage=0

Code:

nbchap=$[$chapfin-$chapdeb+1]
mkdir $folder
(for ((chap=chapdeb; chap <= chapfin ; chap++));do
    mplayer -vo null -ao pcm:file=$folder\/$titre-$chap\.wav -chapter $chap\-$chap dvd://$titre
done
)| zenity --progress --auto-close --title="$title" --percentage=0

Toujours la même chose ! Si ce n'est que le texte permettant d'afficher l'info :

Code:

fichier en cours : 1/3 ...

(qui fonctionne très bien ne s'affiche plus.

Je crois que je vais enlever la barre de progression.

Hors ligne

 

#12 Le 21/01/2006, à 11:06

Re: [Résolu] Recherche aide pour un bout de script nautilus

Salut YeKcim
Essaye avec l'option --pulsate
après --progress


Philippe

Hors ligne

 

#13 Le 21/01/2006, à 11:23

Re: [Résolu] Recherche aide pour un bout de script nautilus

oki je vois ce que tu veux smile

Code:

nbchap=100
title="En cours ..."
bepatient="Fait "
(for (( i=0; i<100 ; i++ ));do
let "progres = i*100/nbchap"
echo "# $bepatient : $i / $nbchap"
echo $progres
done)|zenity  --progress --auto-close --title="$title"  --percentage=0

marche chez moi

Hors ligne

 

#14 Le 21/01/2006, à 11:32

Re: [Résolu] Recherche aide pour un bout de script nautilus

Mais si tu rajoutes mplayer dans ta boucle ça ne marche plus !

Ca me fait remarquer que :

Code:

nbchap=$[$chapfin-$chapdeb+1]
chap=$chapdeb
mkdir $folder
(while [ $chap -le $chapfin ];
do
    let "compteur += 1"
    echo "# $bepatient : $compteur / $nbchap"
    #mplayer -vo null -ao pcm:file=$folder\/$titre-$chap\.wav -chapter $chap\-$chap dvd://$titre
    chap=$[$chap+1]
    let "progress = compteur*100/nbchap"
    echo $progress
done)|    zenity --progress --auto-close --title="$title" --text "$bepatient" --percentage=0

Fonctionne a merveille. C'est très rapide puisqu'il n'y a aucune opération a faire mais pour 3000 boucle on voit bien que ca marche tres bien ! C'est donc mplayer dans la boucle qui me fout la merde ! Je vais essayer de le sortir de la boucle.

Hors ligne

 

#15 Le 21/01/2006, à 11:43

Re: [Résolu] Recherche aide pour un bout de script nautilus

Code:

#################################################
#       FONCTIONS
extract ()
{
    mplayer -vo null -ao pcm:file=$1\/$2-$3\.wav -chapter $3\-$3 dvd://$2
}

et

Code:

compteur=0
(
while [ $chap -le $chapfin ];
do
    let "compteur += 1"
    echo "# $bepatient : $compteur / $nbchap"
    extract "$folder" "$titre" "$chap"
    chap=$[$chap+1]
    let "progress = compteur*100/nbchap"
    echo $progress
done)|    zenity --progress --auto-close --title="$title" --text "$bepatient" --percentage=0

C'est toujours pareil. Je décide donc de ne pas mettre de barre de progression car c'est bien au-dela de mes compétances.

Hors ligne

 

#16 Le 21/01/2006, à 12:18

Re: [Résolu] Recherche aide pour un bout de script nautilus

il ne faut pas abandonner si vite
tu sais maintenant que mplayer parasite zenity
essaie d'ajouter 1>/dev/null a la fin de ta commande mplayer

Hors ligne

 

#17 Le 21/01/2006, à 12:50

Re: [Résolu] Recherche aide pour un bout de script nautilus

Merci Taliesin la solution était là. Je n'ai plus qu'a mettre ca au propre, il y a encore quelques détails que je dois modifié. je ne connaissait pas du tout "1>/dev/null", je vais regarder a quoi ca correspond, je pense que c'est un des classiques que je ne connaissait pas.

Merci beaucoup a tous de m'avoir aider, je commencais vraiment a désespérer de trouver une solution, il faut dire que j'ai commencé ce script il y a 6 jours et qu'il n'y avait que ça qui ne fonctionnait pas !

Hors ligne

 

Pied de page du Forum

Propulsé par FluxBB
Style adapté par Ogcreation.fr.