Pages : 1
#1 Le 06/05/2007, à 14:15
- Compte anonymisé
[Résolu]Script seom2avi [Beryl]
Bonjour,
Je veux convertir mes captures qui sont au format *.seom.
Bonjour,
Est-il possible au script de mettre une Barre de progession (Zenity)
Le Script :
Voilà le script qui fontionne bien pour le *.avi et le mpeg
#!/bin/bash -v
## Script Pour Encoder les Fichiers.seom [Video Capture Plugin] Beryl.
## Décommenter Pour Avoir Des Couleurs Dans Le Terminal.
#echo -e '\E[37;40m';
#echo -e '\E[33;40m';
echo -e '\E[36;40m';
if zenity --question --title "Confirmation" --text "Encodage Du Fichier" # Demande De Confirmation
then break # On Continue
else exit # Fin Du Programme
fi
files="
/tmp/beryl-capture.seom
"
clear
# Création Du Dossier De Sauvegarde [Capture].
if [ ! -d "${HOME}/Desktop/Capture" ]; then
echo "${HOME}/Desktop/Capture n'existe pas !"
echo "Création du répertoire."
mkdir "${HOME}/Desktop/Capture"
else
echo "Le répertoire $${HOME}/Desktop/Capture existe."
fi
# Création Dans Le Dossier [Capture] Du Sous-Répertoire Daté.
jour=$(date +%d-%m-%y-%H:%M:%S)
if [ ! -d "${HOME}/Desktop/Capture/$jour" ]; then
echo "${HOME}/Desktop/Capture/$jour n'existe pas !"
echo "Création du sous répertoire $jour."
mkdir "${HOME}/Desktop/Capture/$jour"
else
echo "Le répertoire ${HOME}/Desktop/Capture/$jour existe."
fi
# Déplacer Le Fichier [beryl-capture.seom] Dans Le Répertoire Daté Ainsi Crée.
echo "Sauvegarde des fichiers."
for f in $files; do
echo -n "Copie du fichier $(basename $f)"
if [ ! -f "$f" ]; then
echo " [ False ]"
else
cp "$f" "${HOME}/Desktop/Capture/$jour"
echo " [ OK ]"
fi
done
# Supression Du Fichier [beryl-capture.seom] Dans Le /tmp/.
result=$(zenity --list --title="Supression" --text="Suppression Du Fichier Dans /tmp" --width=400 --height=200 --radiolist --column="Choix" --column="Réponse" FALSE OUI TRUE NON)
if [ $result == "OUI" ]; then
sudo rm -r /tmp/beryl-capture.seom
fi
result=$(zenity --list --title="Conversion Du Fichier" --text="Choisir Le Format" --width=400 --height=200 --radiolist --column="Choix" --column="Format" FALSE XVID-9000 TRUE MPEG FALSE XVID-1500)
if [ $result == "XVID-9000" ]; then
seom-filter ${HOME}/Desktop/Capture/$jour/beryl-capture.seom | mencoder - -ovc xvid -xvidencopts bitrate=9000 -vf scale=720:576 -o ${HOME}/Desktop/Capture/$jour/Capture-`date +%d-%m-%y-%H:%M:%S`.avi
fi
if [ $result == "MPEG" ]; then
seom-filter ${HOME}/Desktop/Capture/$jour/beryl-capture.seom | mencoder -oac lavc -ovc lavc -lavcopts vcodec=mpeg4:acodec=mp3:abitrate=64 -oac mp3lame -o ${HOME}/Desktop/Capture/$jour/Capture-`date +%d-%m-%y-%H:%M:%S`.mpg -
fi
if [ $result == "XVID-1500" ]; then
seom-filter ${HOME}/Desktop/Capture/$jour/beryl-capture.seom | mencoder - -ovc xvid -xvidencopts bitrate=1500 -vf scale=720:576 -o ${HOME}/Desktop/Capture/$jour/Capture-`date +%d-%m-%y-%H:%M:%S`.avi
fi
# Supression Du Fichier [beryl-capture.seom] Dans Le Répertoire Daté.
result=$(zenity --list --title="Supression" --text="Suppression Du Fichier Dans Le Dossier Daté" --width=400 --height=200 --radiolist --column="Choix" --column="Réponse" FALSE OUI TRUE NON)
if [ $result == "OUI" ]; then
sudo rm -r ${HOME}/Desktop/Capture/$jour/beryl-capture.seom
fi
zenity --info --title="Mencoder" --text="Fermeture Du Programme"
exit
Merci par avance.
Dernière modification par Compte anonymisé (Le 10/05/2007, à 19:41)
#2 Le 10/05/2007, à 21:37
- Alain.g
Re : [Résolu]Script seom2avi [Beryl]
Bonsoir
Avec pulsate, ça balance juste de gauche à droite.
Pour avoir une barre de progression représentative de l'avancement, il faut "parser" la sortie de Mencoder pour récupérer l'info concernant de le pourcentage de façon à ce que Zenity puisse l'exploiter.
Exemple :
mencoder -ovc lavc -oac lavc "video-in.avi" -o "video-out.avi" \
2>&1 | awk -vRS='\r' '$1 ~ /Pos/ {gsub(/Pos:/," ");gsub(/%)/," ");gsub(/ \(/," ");if ($4>0)print $4; fflush();}' | \
zenity --progress --auto-close --text="Veuillez patienter pendant la conversion de la vidéo."
J'avais trouvé cette solution dans ce script : http://ubuntuforums.org/showthread.php?t=193754 (je l'ai toutefois un peu modifié car cela posait problème si Pos>1000s)
Dernière modification par Alain.g (Le 12/05/2007, à 12:39)
Xubuntu Karmic !
Hors ligne
#3 Le 11/05/2007, à 16:30
- Alain.g
Re : [Résolu]Script seom2avi [Beryl]
Ah en fait avec seom-filter vid.seom | mencoder - ... ça ne peut pas fonctionner puisque mencoder ne peut pas déterminer la durée totale de la vidéo.
La seule possibilité, à mon avis, serait de récupérer la durée totale de la vidéo avec un "seom-machin" et après, comme mencoder signale combien de temps il a encodé, on pourrait calculer le pourcentage effectué.
Mais bon, je ne pense pas que ça vaille le coup de se prendre la tête pour ça
Dernière modification par Alain.g (Le 11/05/2007, à 16:31)
Xubuntu Karmic !
Hors ligne
#4 Le 12/05/2007, à 05:20
- Alain.g
Re : [Résolu]Script seom2avi [Beryl]
Si tu veux le faire avec Zenity, il faudrait utiliser quelque chose du style (en simplifié)
zenity --entry --hide-text | sudo -S -v
-S pour que sudo lise le mot de passe depuis le flux d'entrée et -v pour tester.
Tu vérifies ensuite le résultat ("$?") : si 0 c'est bon, si 1 pas bon
Pour les multiples tentatives, faire un boucle for ou while. Si le mot de passe est bon, casser la boucle (break) et le script continue.
Dernière modification par Alain.g (Le 12/05/2007, à 05:22)
Xubuntu Karmic !
Hors ligne
#5 Le 15/05/2007, à 16:37
- freaks
Re : [Résolu]Script seom2avi [Beryl]
hello
ce serait possible de rajouter une sortie en ogg theora? ça m'interesserait pour pouvoir l'utiliser avec le lecteur java cortado sur une page web, en place d'un lecteur flash
mais je crois pas que mencoder puisse enregistrer en ogg theora ....
auriez vous une idée ?
2.6.17-10-386
ubuntu
http://www.freak.fr
Hors ligne