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.

#1 Le 28/10/2007, à 12:11

Jean-lux

Aide pour la réalisation d'un script bash...

Bonjours,

J'ai besoin d'aide pour la réalisation d'un script en bas qui permet de convertir une vidéo en xvid facilement.

Voici le code :

#!/bin/bash
# Script créer par Jean-Lux
# Version 1.0
# Convert my video
# GPL licence

# Informations
zenity --info --title="Information" --text="Ce script permet de convertir des vidéos au format Xvid en quelques étapes"

# Sélection du fichier à convertir
zenity --info --title="Choix de la vidéo d'entrée" --text="Veuillez sélectionnez la vidéo à convertir en Xvid"
inputvideo=$(zenity --file-selection --title="Sélectionnez le fichier d'entrer")


# Sélection du fichier de sortie
zenity --info --title="Choix de la vidéo de sortie" --text="Veuillez maintenant choisir où la vidéo sera enregistré"
outputvideo=$(zenity --file-selection --save --filename="*.avi" --confirm-overwrite --title="Sélectionnez le fichier de sortie")

# Sélection du bit rate du son
soundbitrate=$(zenity --list --radiolist --height 281 \
	--title="Veuillez sélectionnez la qualité du son" \
	--text="Veuillez sélectionnez la qualité (bit rate) du son :\n Plus la valeur est elevée, plus la qualité sera meilleur et plus la taille de la vidéo sera importante\n" \
	--column ""	--column "Débit moyen max [kbit/s]" \
		FALSE	"64" \
		FALSE	"96" \
		TRUE	"128" \
		FALSE	"160" \
		FALSE	"192")

# Sélection du bit rate de la vidéo
videobitrate=$(zenity --list --radiolist --height 256 \
	--title="Veuillez sélectionnez la qualité de la vidéo" \
	--text="Veuillez sélectionnez la qualité (bit rate) de la vidéo :\n Plus la valeur est elevée, plus la qualité sera meilleur et plus la taille de la vidéo sera importante\n" \
	--column ""	--column "Débit moyen max [kbit/s]" \
		FALSE	"537.6" \
		TRUE	"1300" \
		FALSE	"4857" \
		FALSE	"9708.4")

	
# Confirmation
finalcommand=$(zenity --entry --title="Confirmation finale" --text="Je vais exécuter cette commande, modifier cette commande pour rajouter ou modifier des paramètres, sinon ne modifier rien et continuez" --entry-text="mencoder -oac mp3lame -lameopts cbr=$soundbitrate -ovc xvid -xvidencopts bitrate=$videobitrate '$inputvideo' -o '$outputvideo'")

# Conversion de la vidéo
$finalcommand | zenity --progress --title="Conversion en cours..." --text="La vidéo est en cours de conversion...\nVeuillez patienter" --pulsate --auto-close

# Fin
zenity --info --title="FIN" --text="Fin de la conversion de la vidéo !"

Mais il me reste un problème : Je voudrais que la progression soit plus précis, que cela affiche le temps restant et la taille finale du fichier.

Merci de m'aider smile


Un jour... Le manchot cassera la fenêtre !

Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.

Hors ligne

#2 Le 28/10/2007, à 13:22

Jean-lux

Re : Aide pour la réalisation d'un script bash...

up ? hmm


Un jour... Le manchot cassera la fenêtre !

Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.

Hors ligne

#3 Le 28/10/2007, à 13:28

Alain.g

Re : Aide pour la réalisation d'un script bash...

Salut

Voici un petit exemple que tu pourras modifier comme tu souhaites.

Il faut installer gawk (il y a de bonnes chances qu'il le soit déjà) pour que ça soit fluide. Avec mawk ça ne l'est pas vraiment, je ne sais pas pourquoi hmm

mencoder -ovc lavc -oac lavc in.avi -o out.avi 2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/,"  ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position :\\t"$1"\\nTrame :\\t"$2"\\nEffectué :\\t"$3"%\\nVitesse :\\t"$4"\\nReste :\\t"$6"\\nTaille :\\t"$7; fflush();}' | zenity --progress

Xubuntu Karmic !

Hors ligne

#4 Le 28/10/2007, à 13:49

Jean-lux

Re : Aide pour la réalisation d'un script bash...

Alain.g a écrit :

Salut

Voici un petit exemple que tu pourras modifier comme tu souhaites.

Il faut installer gawk (il y a de bonnes chances qu'il le soit déjà) pour que ça soit fluide. Avec mawk ça ne l'est pas vraiment, je ne sais pas pourquoi hmm

mencoder -ovc lavc -oac lavc in.avi -o out.avi 2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/,"  ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position :\\t"$1"\\nTrame :\\t"$2"\\nEffectué :\\t"$3"%\\nVitesse :\\t"$4"\\nReste :\\t"$6"\\nTaille :\\t"$7; fflush();}' | zenity --progress

Je te remerci, cela fonctionne parfaitement smile

Encore merci smile:):):)


Un jour... Le manchot cassera la fenêtre !

Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.

Hors ligne

#5 Le 28/10/2007, à 14:32

soupaloignon

Re : Aide pour la réalisation d'un script bash...

Salut,

Quel type de vidéo tu prends en entrée de ton script ?


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#6 Le 28/10/2007, à 14:43

Jean-lux

Re : Aide pour la réalisation d'un script bash...

soupaloignon a écrit :

Salut,

Quel type de vidéo tu prends en entrée de ton script ?

N'importe quel type de vidéo supporté par mencoder/mplayer, donc presque tout !!!


Un jour... Le manchot cassera la fenêtre !

Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.

Hors ligne

#7 Le 28/10/2007, à 14:47

Jean-lux

Re : Aide pour la réalisation d'un script bash...

J'ai encore besoin de vous !

Mon script ne veut pas effectuer l'opération demandé, pourtant, la commande est bonne.
bugix4.jpg
Si je fait copier/coller la commande apparu dans le terminal, cela fonctionne !

Voici le script presque terminés :

#!/bin/bash
# Script créer par Jean-Lux
# Version 1.0
# Convert my video
# GPL licence

# Informations
zenity --info --title="Information" --text="Ce script permet de convertir des vidéos au format Xvid en quelques étapes"

# Sélection du fichier à convertir
zenity --info --title="Choix de la vidéo d'entrée" --text="Veuillez sélectionnez la vidéo à convertir en Xvid"
inputvideo=$(zenity --file-selection --title="Sélectionnez le fichier d'entrer")
	if [ "${PIPESTATUS[0]}" != "0" ]; then
			echo "Anulation..!"
            		exit
        	fi


# Sélection du fichier de sortie
zenity --info --title="Choix de la vidéo de sortie" --text="Veuillez maintenant choisir où la vidéo sera enregistré"
outputvideo=$(zenity --file-selection --save --filename="video.avi" --confirm-overwrite --title="Sélectionnez le fichier de sortie")
	if [ "${PIPESTATUS[0]}" != "0" ]; then
			echo "Anulation..!"
            		exit
        	fi

# Sélection du bit rate du son
soundbitrate=$(zenity --list --radiolist --height 281 \
	--title="Veuillez sélectionnez la qualité du son" \
	--text="Veuillez sélectionnez la qualité (bit rate) du son :\n Plus la valeur est elevée, plus la qualité sera meilleur et plus la taille de la vidéo sera importante\n" \
	--column ""	--column "Débit moyen max [kbit/s]" \
		FALSE	"64" \
		FALSE	"96" \
		TRUE	"128" \
		FALSE	"160" \
		FALSE	"192")
	if [ "${PIPESTATUS[0]}" != "0" ]; then
			echo "Anulation..!"
            		exit
        	fi

# Sélection du bit rate de la vidéo
videobitrate=$(zenity --list --radiolist --height 256 \
	--title="Veuillez sélectionnez la qualité de la vidéo" \
	--text="Veuillez sélectionnez la qualité (bit rate) de la vidéo :\n Plus la valeur est elevée, plus la qualité sera meilleur et plus la taille de la vidéo sera importante\n" \
	--column ""	--column "Débit moyen max [kbit/s]" \
		FALSE	"537" \
		TRUE	"1300" \
		FALSE	"4857" \
		FALSE	"9708.4")
	if [ "${PIPESTATUS[0]}" != "0" ]; then
			echo "Anulation..!"
            		exit
        	fi

# Sélection du nombre de passe
numpass=$(zenity --list --radiolist \
	--title="Veuillez sélectionnez le nombre de passe" \
	--text="Veuillez sélectionnez le nombre de passe :\n Plus la valeur est elevée, plus la qualité sera meilleur et plus le temps d'encodage sera long\n" \
	--column	""	--column "Nombre de passe"\
		FALSE	"1" \
		TRUE	"2")
	if [ "${PIPESTATUS[0]}" != "0" ]; then
			echo "Anulation..!"
            		exit
        	fi

	
# Confirmation
finalcommand=$(zenity --entry --title="Confirmation finale" --text="Je vais exécuter cette commande, modifier cette commande pour rajouter ou modifier des paramètres, sinon ne modifier rien et continuez" --entry-text="mencoder -oac mp3lame -lameopts cbr=$soundbitrate -ovc xvid -xvidencopts bitrate=$videobitrate:pass=$numpass '$inputvideo' -o '$outputvideo'")
	if [ "${PIPESTATUS[0]}" != "0" ]; then
			echo "Anulation..!"
            		exit
        	fi


# Conversion de la vidéo

echo $finalcommand
$finalcommand 2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/,"  ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position :\\t"$1"\\nTrame :\\t"$2"\\nEffectué :\\t"$3"%\\nVitesse :\\t"$4"\\nTemps Restant :\\t"$6"\\nTaille estimée:\\t"$7; fflush();}' | zenity --progress --title="Conversion en cours..."

# Fin
zenity --info --title="FIN" --text="Fin de la conversion de la vidéo !"

Un jour... Le manchot cassera la fenêtre !

Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.

Hors ligne

#8 Le 28/10/2007, à 15:27

Alain.g

Re : Aide pour la réalisation d'un script bash...

Les simple-quotes sont interprétés comme faisant partie du nom (autour de $inputvideo ou $outputvideo). C'est de là que semble venir le problème.


Sinon je ne sais pas si tu as compris comment utiliser l'encodage double passe avec mencoder ? Parce que là, ça supposerait de devoir lancer deux fois ton script, une fois pour la passe 1, une fois pour la passe 2.
Ce que ne serait pas vraiment pratique hmm

Dernière modification par Alain.g (Le 28/10/2007, à 15:35)


Xubuntu Karmic !

Hors ligne

#9 Le 30/10/2007, à 16:58

soupaloignon

Re : Aide pour la réalisation d'un script bash...

Jean-lux a écrit :
soupaloignon a écrit :

Salut,

Quel type de vidéo tu prends en entrée de ton script ?

N'importe quel type de vidéo supporté par mencoder/mplayer, donc presque tout !!!

Merci pour l'info wink



Je me suis permis de corriger quelques fautes d'orthographe dans le script (je n'ai pas touché au code, juste l'ortho des messages)

Code:
#!/bin/bash
# Script créé par Jean-Lux
# Version 1.0
# Convert my video
# GPL licence

# Informations
zenity --info --title="Information" --text="Ce script permet de convertir des vidéos au format Xvid en quelques étapes"

# Sélection du fichier à convertir
zenity --info --title="Choix de la vidéo d'entrée" --text="Veuillez sélectionner la vidéo à convertir en Xvid"
inputvideo=$(zenity --file-selection --title="Sélectionnez le fichier d'entrée")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Anulation..!"
                    exit
            fi


# Sélection du fichier de sortie
zenity --info --title="Choix de la vidéo de sortie" --text="Veuillez maintenant choisir où la vidéo sera enregistrée"
outputvideo=$(zenity --file-selection --save --filename="video.avi" --confirm-overwrite --title="Sélectionnez le fichier de sortie")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Anulation..!"
                    exit
            fi

# Sélection du bit rate du son
soundbitrate=$(zenity --list --radiolist --height 281 \
    --title="Veuillez sélectionner la qualité du son" \
    --text="Veuillez sélectionner la qualité (bit rate) du son :\n Plus la valeur est élevée, plus la qualité sera meilleure et plus la taille de la vidéo sera importante\n" \
    --column ""    --column "Débit moyen max [kbit/s]" \
        FALSE    "64" \
        FALSE    "96" \
        TRUE    "128" \
        FALSE    "160" \
        FALSE    "192")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Annulation..!"
                    exit
            fi

# Sélection du bit rate de la vidéo
videobitrate=$(zenity --list --radiolist --height 256 \
    --title="Veuillez sélectionner la qualité de la vidéo" \
    --text="Veuillez sélectionner la qualité (bit rate) de la vidéo :\n Plus la valeur est élevée, plus la qualité sera meilleure et plus la taille de la vidéo sera importante\n" \
    --column ""    --column "Débit moyen max [kbit/s]" \
        FALSE    "537" \
        TRUE    "1300" \
        FALSE    "4857" \
        FALSE    "9708.4")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Annulation..!"
                    exit
            fi

# Sélection du nombre de passe
numpass=$(zenity --list --radiolist \
    --title="Veuillez sélectionner le nombre de passe" \
    --text="Veuillez sélectionner le nombre de passe :\n Plus la valeur est élevée, plus la qualité sera meilleure et plus le temps d'encodage sera long\n" \
    --column    ""    --column "Nombre de passe"\
        FALSE    "1" \
        TRUE    "2")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Anulation..!"
                    exit
            fi

    
# Confirmation
finalcommand=$(zenity --entry --title="Confirmation finale" --text="Je vais exécuter cette commande, modifiez cette commande pour rajouter ou modifier des paramètres, sinon ne modifiez rien et continuez" --entry-text="mencoder -oac mp3lame -lameopts cbr=$soundbitrate -ovc xvid -xvidencopts bitrate=$videobitrate:pass=$numpass '$inputvideo' -o '$outputvideo'")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Anulation..!"
                    exit
            fi


# Conversion de la vidéo

echo $finalcommand
$finalcommand 2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/,"  ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position :\\t"$1"\\nTrame :\\t"$2"\\nEffectué :\\t"$3"%\\nVitesse :\\t"$4"\\nTemps Restant :\\t"$6"\\nTaille estimée:\\t"$7; fflush();}' | zenity --progress --title="Conversion en cours..."

# Fin
zenity --info --title="FIN" --text="Fin de la conversion de la vidéo !"

Dernière modification par soupaloignon (Le 30/10/2007, à 16:59)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#10 Le 04/11/2007, à 19:30

yakusa77

Re : Aide pour la réalisation d'un script bash...

@Jean-Lux as tu trouvé pourquoi la commande ne se lance pas en shell ?
yakusa77


De vraies interfaces graphique pour vos scripts shell
"Précise 64" | AMD phenom II x4 black édition 965

Hors ligne

#11 Le 05/11/2007, à 23:49

yakusa77

Re : Aide pour la réalisation d'un script bash...

Sa y est j'ai trouvé une formule qui fonctionne , le script est enfin pleinement fonctionnel je joint meme un petit screenshot de la fenetre d'encodage

#!/bin/bash
# Script créé par Jean-Lux
# modifié par yakusa77
# Version 1.0
# Convert my video
# GPL licence

# Informations
zenity --info --title="Information" --text="Ce script permet de convertir des vidéos au format Xvid en quelques étapes"

# Sélection du fichier à convertir
zenity --info --title="Choix de la vidéo d'entrée" --text="Veuillez sélectionner la vidéo à convertir en Xvid"
inputvideo=$(zenity --file-selection --title="Sélectionnez le fichier d'entrée")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Anulation..!"
                    exit
            fi


# Sélection du fichier de sortie
zenity --info --title="Choix de la vidéo de sortie" --text="Veuillez maintenant choisir où la vidéo sera enregistrée"
outputvideo=$(zenity --file-selection --save --filename="video.avi" --confirm-overwrite --title="Sélectionnez le fichier de sortie")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Annulation..!"
                    exit
            fi

# Sélection du bit rate du son
soundbitrate=$(zenity --list --radiolist --height 281 \
    --title="Veuillez sélectionner la qualité du son" \
    --text="Veuillez sélectionner la qualité (bit rate) du son :\n Plus la valeur est élevée, plus la qualité sera meilleure et plus la taille de la vidéo sera importante\n" \
    --column ""    --column "Débit moyen max [kbit/s]" \
        FALSE    "64" \
        FALSE    "96" \
        TRUE    "128" \
        FALSE    "160" \
        FALSE    "192")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Annulation..!"
                    exit
            fi

# Sélection du bit rate de la vidéo
videobitrate=$(zenity --list --radiolist --height 256 \
    --title="Veuillez sélectionner la qualité de la vidéo" \
    --text="Veuillez sélectionner la qualité (bit rate) de la vidéo :\n Plus la valeur est élevée, plus la qualité sera meilleure et plus la taille de la vidéo sera importante\n" \
    --column ""    --column "Débit moyen max [kbit/s]" \
        FALSE    "537" \
        TRUE    "1300" \
        FALSE    "4857" \
        FALSE    "9708.4")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Annulation..!"
                    exit
            fi

# Sélection du nombre de passe
numpass=$(zenity --list --radiolist \
    --title="Veuillez sélectionner le nombre de passe" \
    --text="Veuillez sélectionner le nombre de passe :\n Plus la valeur est élevée, plus la qualité sera meilleure et plus le temps d'encodage sera long\n" \
    --column    ""    --column "Nombre de passe"\
        FALSE    "1" \
        TRUE    "2")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Annulation..!"
                    exit
            fi

    
# Confirmation
finalcommand=$(zenity --entry --title="Confirmation finale" --text="Je vais exécuter cette commande, modifier cette commande pour rajouter ou modifier des paramètres, sinon ne modifier rien et continuez" --entry-text="mencoder -oac mp3lame -lameopts cbr=$soundbitrate -ovc xvid -xvidencopts bitrate=$videobitrate:pass=$numpass $inputvideo -o $outputvideo")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Annulation..!"
                    exit
            fi


# Conversion de la vidéo

echo $finalcommand;
$finalcommand 2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/,"  ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position :\\t"$1"\\nTrame :\\t"$2"\\nEffectué :\\t"$3"%\\nVitesse :\\t"$4"\\nTemps Restant :\\t"$6"\\nTaille estimée:\\t"$7; fflush();}' | zenity --progress --title="Conversion en cours..." --text="\n Position :\\t"$1"\ \n Trame :\\t"$2"\ \n Effectué :\\t"$3"%\ \n Vitesse :\\t"$4"\ \n Temps Restant :\\t"$6"\ \n Taille estimée:\\t"$7""

# Fin
zenity --info --title="FIN" --text="Fin de la conversion de la vidéo !"

et le screenschot
Capture-Conversion%20en%20cours.pngmais il subsiste toutefois un bug aux niveau du nombre de passe il n'en fera q'une quoi qu'il arrive.

Dernière modification par yakusa77 (Le 06/11/2007, à 19:03)


De vraies interfaces graphique pour vos scripts shell
"Précise 64" | AMD phenom II x4 black édition 965

Hors ligne

#12 Le 10/11/2007, à 11:52

Jean-lux

Re : Aide pour la réalisation d'un script bash...

yakusa77 a écrit :

Sa y est j'ai trouvé une formule qui fonctionne , le script est enfin pleinement fonctionnel je joint meme un petit screenshot de la fenetre d'encodage

#!/bin/bash
# Script créé par Jean-Lux
# modifié par yakusa77
# Version 1.0
# Convert my video
# GPL licence

# Informations
zenity --info --title="Information" --text="Ce script permet de convertir des vidéos au format Xvid en quelques étapes"

# Sélection du fichier à convertir
zenity --info --title="Choix de la vidéo d'entrée" --text="Veuillez sélectionner la vidéo à convertir en Xvid"
inputvideo=$(zenity --file-selection --title="Sélectionnez le fichier d'entrée")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Anulation..!"
                    exit
            fi


# Sélection du fichier de sortie
zenity --info --title="Choix de la vidéo de sortie" --text="Veuillez maintenant choisir où la vidéo sera enregistrée"
outputvideo=$(zenity --file-selection --save --filename="video.avi" --confirm-overwrite --title="Sélectionnez le fichier de sortie")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Annulation..!"
                    exit
            fi

# Sélection du bit rate du son
soundbitrate=$(zenity --list --radiolist --height 281 \
    --title="Veuillez sélectionner la qualité du son" \
    --text="Veuillez sélectionner la qualité (bit rate) du son :\n Plus la valeur est élevée, plus la qualité sera meilleure et plus la taille de la vidéo sera importante\n" \
    --column ""    --column "Débit moyen max [kbit/s]" \
        FALSE    "64" \
        FALSE    "96" \
        TRUE    "128" \
        FALSE    "160" \
        FALSE    "192")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Annulation..!"
                    exit
            fi

# Sélection du bit rate de la vidéo
videobitrate=$(zenity --list --radiolist --height 256 \
    --title="Veuillez sélectionner la qualité de la vidéo" \
    --text="Veuillez sélectionner la qualité (bit rate) de la vidéo :\n Plus la valeur est élevée, plus la qualité sera meilleure et plus la taille de la vidéo sera importante\n" \
    --column ""    --column "Débit moyen max [kbit/s]" \
        FALSE    "537" \
        TRUE    "1300" \
        FALSE    "4857" \
        FALSE    "9708.4")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Annulation..!"
                    exit
            fi

# Sélection du nombre de passe
numpass=$(zenity --list --radiolist \
    --title="Veuillez sélectionner le nombre de passe" \
    --text="Veuillez sélectionner le nombre de passe :\n Plus la valeur est élevée, plus la qualité sera meilleure et plus le temps d'encodage sera long\n" \
    --column    ""    --column "Nombre de passe"\
        FALSE    "1" \
        TRUE    "2")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Annulation..!"
                    exit
            fi

    
# Confirmation
finalcommand=$(zenity --entry --title="Confirmation finale" --text="Je vais exécuter cette commande, modifier cette commande pour rajouter ou modifier des paramètres, sinon ne modifier rien et continuez" --entry-text="mencoder -oac mp3lame -lameopts cbr=$soundbitrate -ovc xvid -xvidencopts bitrate=$videobitrate:pass=$numpass $inputvideo -o $outputvideo")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Annulation..!"
                    exit
            fi


# Conversion de la vidéo

echo $finalcommand;
$finalcommand 2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/,"  ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position :\\t"$1"\\nTrame :\\t"$2"\\nEffectué :\\t"$3"%\\nVitesse :\\t"$4"\\nTemps Restant :\\t"$6"\\nTaille estimée:\\t"$7; fflush();}' | zenity --progress --title="Conversion en cours..." --text="\n Position :\\t"$1"\ \n Trame :\\t"$2"\ \n Effectué :\\t"$3"%\ \n Vitesse :\\t"$4"\ \n Temps Restant :\\t"$6"\ \n Taille estimée:\\t"$7""

# Fin
zenity --info --title="FIN" --text="Fin de la conversion de la vidéo !"

et le screenschot
http://greencase.free.fr/Capture-Conver … 0cours.pngmais il subsiste toutefois un bug aux niveau du nombre de passe il n'en fera q'une quoi qu'il arrive.

Merci, mais y'a quand même un petit bug !

Lorsque l'on veut convertir une vidéo qui contient des espaces, cela ne fonctionne pas ! Que se soit en entrée ou en sortie !

J'ai rajouté des ' dans la partie "# Confirmation" :

# Confirmation
finalcommand=$(zenity --entry --title="Confirmation finale" --text="Je vais exécuter cette commande, modifier cette commande pour rajouter ou modifier des paramètres, sinon ne modifier rien et continuez" --entry-text="mencoder -oac mp3lame -lameopts cbr=$soundbitrate -ovc xvid -xvidencopts bitrate=$videobitrate '$inputvideo' -o '$outputvideo'")
    if [ "${PIPESTATUS[0]}" != "0" ]; then
            echo "Annulation..!"
                    exit
            fi

Par contre, sans espace, tout fonctionne très bien !

Merci de m'aider


Un jour... Le manchot cassera la fenêtre !

Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.

Hors ligne

#13 Le 10/11/2007, à 12:33

yakusa77

Re : Aide pour la réalisation d'un script bash...

Salut Jean-lux oui je l'ai constaté aussi pour les espaces, mais il n' y pas que ça car lorsque que je convertir une video flv(flash) le son est tout simplement pourri inaudible et je pense que c'est parce que le son est deja en mp3, donc je reflechi à  rajouté une ligne qui permettrai de ne pas réencodé (simple copie) mais je ne sait pas comment faire...:)

edit: avec des apostrophe sa ne fonctionne pas du tout (avec ou sans espace dans le nom), par contre avec des guillemets ça fonctionne sans espace dans le nom, avec espace meme resulta!

Dernière modification par yakusa77 (Le 10/11/2007, à 12:45)


De vraies interfaces graphique pour vos scripts shell
"Précise 64" | AMD phenom II x4 black édition 965

Hors ligne

#14 Le 09/12/2007, à 18:45

eric42

Re : Aide pour la réalisation d'un script bash...

Bonsoir,

Vraiment pratique ton script. J'ai essayé d'implémenter une boucle mais sans succès de plus cela impliquerai de faire une première passe pour calculer le temps nécessaire pour chacune des vidéos et ensuite d'appliquer ce résultat au compteur et de le mettre à  jour en tenant compte du déroulement de chaque transcodage. Bref un truc à  s'arracher les cheveux.

Par contre j'avais trouvé sur le forum un script tout simple : une boucle avec l'exécution de mencoder mais ce qui m'avait plu dans ce script que je ne retrouve pas c'est les options de mencoder.

En tout cas bon travail que ton script.

Eric

#15 Le 10/12/2007, à 11:05

freebird

Re : Aide pour la réalisation d'un script bash...

yakusa77 a écrit :

edit: avec des apostrophe sa ne fonctionne pas du tout (avec ou sans espace dans le nom), par contre avec des guillemets ça fonctionne sans espace dans le nom, avec espace meme resulta!

Avez vous essayez de mettre des \ avant les guillemets pour qu'il ne soit pas interprétés ?

Exemple :

finalcommand=$(zenity --entry --title="Confirmation finale" --text="Je vais exécuter cette commande, modifier cette commande pour rajouter ou modifier des paramètres, sinon ne modifier rien et continuez" --entry-text="mencoder -oac mp3lame -lameopts cbr=$soundbitrate -ovc xvid -xvidencopts bitrate=$videobitrate:pass=$numpass \"$inputvideo\" -o \"$outputvideo\"")

Hors ligne

#16 Le 10/12/2007, à 20:13

yakusa77

Re : Aide pour la réalisation d'un script bash...

freebird a écrit :
yakusa77 a écrit :

edit: avec des apostrophe sa ne fonctionne pas du tout (avec ou sans espace dans le nom), par contre avec des guillemets ça fonctionne sans espace dans le nom, avec espace meme resulta!

Avez vous essayez de mettre des \ avant les guillemets pour qu'il ne soit pas interprétés ?

Et toi freebird as tu essayé ? je t'avouerai que je ne sais pas as quoi es ce que c'est censé servir , parce que notre probleme sont les espaces dans les noms de fichiers qui créait un crash de l'encodage, ce qui es tout a fait normal puisque l'encodeur cherche un fichier qui n'existe pas ...


De vraies interfaces graphique pour vos scripts shell
"Précise 64" | AMD phenom II x4 black édition 965

Hors ligne

#17 Le 10/12/2007, à 22:01

freebird

Re : Aide pour la réalisation d'un script bash...

Non je n'ai pas essayé mais tu n'es pas obligé de me répondre comme ça. Si tu ne veux pas d'aide tu ne postes pas ici hein.
Cela dit je vais quand même t'expliquer à  quoi c'est censé servir. Le caractère \ permet d'éviter l'interprétation, ça te permet entre autre d'utiliser des " à  l'intérieur d'une chaà®ne délimitée par des ".
Sur ce débrouillez vous, si c'est pour être reçu comme ça, c'est pas la peine.

Hors ligne

#18 Le 10/12/2007, à 23:26

yakusa77

Re : Aide pour la réalisation d'un script bash...

oups je suis désolé , je me suis mal exprimé sans doute , je voulais juste savoir si toi tu avait essayer et si tu pensait que sa resoudrais le probleme c'est tout ... je n'es pas mi la ponctuation au bon endroit

edit: j'ai essayer ton idée , dans la ligne de confirmation apparait bien le chemin complet avec l'espace, mais l'encodage foire quand meme... il ne se lance pas  et encore desolé si j'ai pu te paraitre grossier.

Dernière modification par yakusa77 (Le 10/12/2007, à 23:36)


De vraies interfaces graphique pour vos scripts shell
"Précise 64" | AMD phenom II x4 black édition 965

Hors ligne

#19 Le 11/12/2007, à 15:53

freebird

Re : Aide pour la réalisation d'un script bash...

C'est oublié pas de soucis wink

J'ai rencontré un soucis avec l'utilisation de guillemets dans un ordre à  exécuter. La seule solution que j'ai trouvée pour l'instant a été de mettre la ligne de commande dans un fichier et de l'exécuter. Je supprime le fichier en question dès que j'ai fini.
Je ne trouve pas ça top mais au moins ça fonctionne.

Hors ligne

#20 Le 11/12/2007, à 16:39

yakusa77

Re : Aide pour la réalisation d'un script bash...

ouais... alors on va dire que l'essentiel c'est resulta ... le truc que je comprend pas, c'est que la commande finale qui result de la modification que tu as apporté, fonctionne lorsqu'elle est lancer en dehors du script smile .. mais si tu as une autre methode on la prend copie nous le bout de code stp smile


De vraies interfaces graphique pour vos scripts shell
"Précise 64" | AMD phenom II x4 black édition 965

Hors ligne

#21 Le 12/12/2007, à 01:43

freebird

Re : Aide pour la réalisation d'un script bash...

une tite copie de la partie o๠j'ai eu le soucis :

#creation de la commande
      lst_montage=$(df -k | awk -F'%' '{ print $2 }' | sed -e 's/^ //' | awk ' NR>3 && $NF !~ "/var" && $NF !~ "/dev" && $NF !~ "/lib" {
         printf(" FALSE \"%s\"",$0) }')
      cmd="zenity --list --radiolist --title \"Selection du point de montage\" --width=520 --height=320 \
               --text=\"Choisir dans la liste\" --column=\"Choix\" --column=\"Point de montage\" ${lst_montage}"
# ecriture dans un fichier
      echo $cmd > ${fic_tmp}.df-k
# droit d'execution
      chmod 755 ${fic_tmp}.df-k
# execution avec récupération du résultat dans une variable
      rep_app=$(${fic_tmp}.df-k)

Pour ceux qui chercherait à  comprendre le script, je récupère la liste des montages pour les mettre dans une fenêtre avec une sélection. Tout le bordel viens des points de montages avec des espaces...
Je me suis pas mal pris la tête et je suis sûr qu'il y a plus simple mais sur le moment je n'ai pas trouvé mieux.

code complet dispo ici.

Hors ligne

#22 Le 12/12/2007, à 10:16

yakusa77

Re : Aide pour la réalisation d'un script bash...

whaou ! c'est tres cool, je vais tester sa de suite !!!


De vraies interfaces graphique pour vos scripts shell
"Précise 64" | AMD phenom II x4 black édition 965

Hors ligne

#23 Le 26/12/2007, à 21:08

winael

Re : Aide pour la réalisation d'un script bash...

Bonjour à  tous
Je me permet de faire un peu revivre ce post car j'ai un petit soucis justement avec ce dont il est question. J'ai repris le code posté pour l'affichage de la progression mais malheuresement la fenetre ne s'affiche que lorsque le transcodage est terminé je ne sais pas d'ou peut provenir le pb sad voici un extrait de mon code

zenity --question \
  				--title=TITLE \
  				--text "Résumé de vos choix \n \n Fichier d'entrée : $inputfilm \n \n Langue audio choisie : $lang_audio \n Piste de Sous-titre : $lang_sstitre \n \n Format de sortie : $format_sortie \n \n Vidéobitrate : $videobitrate \n Audiobitrate : $audiobitrate \n Nombre de passe : $numpass \n \n Fichier de sortie : $outputfilm \n \n Voulez-vous continuer ?"

			# Conversion de la vidéo

			conversion=$( \
			mencoder \
				-oac mp3lame -lameopts cbr=$audiobitrate  \
				-ovc xvid -xvidencopts bitrate=$videobitrate:pass=$numpass \
				-sid $lang_sstitre \
				-aid $lang_audio \
				$inputfilm \
				-o $outputfilm)

			$conversion 2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/,"  ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position :\\t"$1"\\nTrame :\\t"$2"\\nEffectué :\\t"$3"%\\nVitesse :\\t"$4"\\nTemps Restant :\\t"$6"\\nTaille estimée:\\t"$7; fflush();}' | zenity --progress --title="Conversion en cours..." --text="\n Position :\\t"$1"\ \n Trame :\\t"$2"\ \n Effectué :\\t"$3"%\ \n Vitesse :\\t"$4"\ \n Temps Restant :\\t"$6"\ \n Taille estimée:\\t"$7""

Qui pourrait m'aider ?


Libre, non pas comme dans entrée libre, mais comme dans Liberté
(Bouyop)Mon PC c 1 MAC boulet ! G pas windows, donc je pe pas intaller linux !
(pankkake) Windows VISTA : Virus, Infections, Spyware, Trojans, Adware.
OPEN your mind, you'll discover a FREE world

Hors ligne

#24 Le 27/12/2007, à 00:55

yakusa77

Re : Aide pour la réalisation d'un script bash...

ba ecoute, je vois pas trop comme sa il faudrait pouvoir tester le script dans son entier. Parce que à  priori tu as juste fait un copier/coller de ligne concernant la fenetre zenity .
Pour ma part j'ai créer un script vite fait avec des variable bidon pour simulé ton script, mais je me retrouve face a la meme situation que toi la fenetre apparait a la fin de l'encodage.
sinon essaye de le lancer dans un terminal pour voir si il y a pas un parametre inattendu...

EDIT: sa y es j'ai trouvé , se sont les parenthese à  la ligne "conversion=$"
comme ceci sa fonctionne:

# Conversion de la vidéo
conversion=$"mencoder -oac mp3lame -lameopts cbr=$audiobitrate -ovc xvid -xvidencopts bitrate=$videobitrate:pass=$numpass "$inputfilm" -o "$outputfilm""

Dernière modification par yakusa77 (Le 27/12/2007, à 12:25)


De vraies interfaces graphique pour vos scripts shell
"Précise 64" | AMD phenom II x4 black édition 965

Hors ligne

#25 Le 27/12/2007, à 12:26

yakusa77

Re : Aide pour la réalisation d'un script bash...

up j'ai edité mon post précedent big_smile


De vraies interfaces graphique pour vos scripts shell
"Précise 64" | AMD phenom II x4 black édition 965

Hors ligne