Contenu | Rechercher | Menus

Annonce

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

Ubuntu 18.04 LTS
Ubuntu-fr propose des clés USB de Ubuntu et toutes ses « saveurs » ainsi qu'un magnifique t-shirt pour cette toute nouvelle version d'Ubuntu !

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.

#1 Le 17/01/2006, à 22: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, à 09: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, à 22: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, à 22: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 ! hmm

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, à 18: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, à 20: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, à 11:18

Taliesin

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, à 11: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, à 11: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, à 11: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, à 11: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, à 12: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, à 12:23

Taliesin

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

oki je vois ce que tu veux smile

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, à 12: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, à 12: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, à 13: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, à 13: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