#1 Le 17/01/2006, à 21:12
- yeKcim
[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 :
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.
Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr
Hors ligne
#2 Le 18/01/2006, à 08:32
- yeKcim
Re : [Résolu] Recherche aide pour un bout de script nautilus
up
Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr
Hors ligne
#3 Le 18/01/2006, à 21:36
- yeKcim
Re : [Résolu] Recherche aide pour un bout de script nautilus
J'ai modifié pour simplifier.
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 !
Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr
Hors ligne
#4 Le 18/01/2006, à 21:43
- yeKcim
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 !
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
Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr
Hors ligne
#5 Le 20/01/2006, à 17:59
- bobousse
Re : [Résolu] Recherche aide pour un bout de script nautilus
essaye juste par curiosité de mettre le
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
- yeKcim
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.
Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr
Hors ligne
#7 Le 21/01/2006, à 10:18
- Taliesin
Re : [Résolu] Recherche aide pour un bout de script nautilus
une idée comme ca
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
- yeKcim
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 :
)| zenity --progress --auto-close --title="$title" --text "$bepatient" --percentage=0
Mais bien de :
let "progress = compteur*100/nbchap"
echo $progress
Je pense que tu m'envois sur la bonne piste
Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr
Hors ligne
#9 Le 21/01/2006, à 10:28
- yeKcim
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) :
#!/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
Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr
Hors ligne
#10 Le 21/01/2006, à 10:47
- Taliesin
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
- yeKcim
Re : [Résolu] Recherche aide pour un bout de script nautilus
(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
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 :
fichier en cours : 1/3 ...
(qui fonctionne très bien ne s'affiche plus.
Je crois que je vais enlever la barre de progression.
Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr
Hors ligne
#12 Le 21/01/2006, à 11:06
- philippe
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
- Taliesin
Re : [Résolu] Recherche aide pour un bout de script nautilus
oki je vois ce que tu veux
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
- yeKcim
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 :
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.
Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr
Hors ligne
#15 Le 21/01/2006, à 11:43
- yeKcim
Re : [Résolu] Recherche aide pour un bout de script nautilus
#################################################
# FONCTIONS
extract ()
{
mplayer -vo null -ao pcm:file=$1\/$2-$3\.wav -chapter $3\-$3 dvd://$2
}
et
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.
Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr
Hors ligne
#16 Le 21/01/2006, à 12:18
- Taliesin
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
- yeKcim
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 !
Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr
Hors ligne