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 08/11/2011, à 10:22

neferites

[Résolu] Récupérer l'avancement de mkvmerge

Bonjour à tous et à toutes,

Je suis en train de me faire un petit script pour classer mes séries, et les muxer.

Cependant, afin de le rendre un peu plus user friendly, je souhaite afficher une notification avec l'état d'avancement du muxage.

Pour cela, j'utilise notify-sent, mais afin de faire ma barre d'avancement, il faudrait que je puisse récupérer la valeur écrite dans le shell par mkvmerge. Or, je ne sais pas comment m'y prendre.

La fonction grep, ou une redirection dans un fichier n'est effective que lorsque que l'état d'avancement est à 100% ...

Si quelqu'un sait comment me dépanner, je suis preneur smile

Merci beaucoup

Dernière modification par neferites (Le 09/11/2011, à 12:46)

Hors ligne

#2 Le 08/11/2011, à 11:48

neferites

Re : [Résolu] Récupérer l'avancement de mkvmerge

J'ai une partie de ma réponse, car si je fais un :

 mkvmerge -o "mon_fichier_de_sortie" "mon_mkv" "mon_srt" &> "un fichier texte" 

J'obtiens l'affichage dans le fichier, à l’exception de l'avancement sad

Je baisse pas les bras smile

Hors ligne

#3 Le 08/11/2011, à 12:51

gerarmentor

Re : [Résolu] Récupérer l'avancement de mkvmerge

Bonjour,

L'avancement s'affiche sur la même ligne en utilisant le retour chariot.
Si tu veux qu'il s'affiche sur des lignes différentes, tu peux modifier ainsi la sortie :

mkvmerge | tr  '\r' '\n'

J'utilise plus volontiers "gawk" que grep pour ce genre de travail. Il est possible lui spécifier directement que le séparateur est " \r", ainsi pas besoin de remplacement :

mkvmerge -o vidéo.mkv vidéo srt | gawk -vRS='\r' '/^Avancement/'

Hors ligne

#4 Le 08/11/2011, à 13:14

neferites

Re : [Résolu] Récupérer l'avancement de mkvmerge

Bonjour,

Merci pour la réponse.

Cependant, cela ne correspond pas tout à fait à mon attente.

En effet, l'affichage est maintenant sur plusieurs lignes, mais, je ne peux toujours pas le récupérer en temps réel pour par exemple le stocker dans une variable AV, afin de l'utiliser dans notify-send en faisant :

 notify-send "Muxage en cours" -i notification-audio-volume-high -h int:value:AV -h string:synchronous:volume 

Merci

Hors ligne

#5 Le 08/11/2011, à 13:49

gerarmentor

Re : [Résolu] Récupérer l'avancement de mkvmerge

Je t'ai  également donné un moyen de récupérer l'avancement  en temps réel avec gawk, je ne vais pas non plus te faire ton script en entier wink

Je ne connais pas notify-send (même pas installé), mais tu devrais pouvoir te débrouiller.

Hors ligne

#6 Le 08/11/2011, à 14:10

gerarmentor

Re : [Résolu] Récupérer l'avancement de mkvmerge

Voici un moyen testé avec zenity et sa barre de progression, si ça peut t'aider :

mkvmerge -o vidéo.mkv vidéo srt | gawk -vRS='\r' '/^Avancement/ {print $NF; fflush()}' | zenity --progress

Hors ligne

#7 Le 08/11/2011, à 16:57

neferites

Re : [Résolu] Récupérer l'avancement de mkvmerge

Merci beaucoup.

Je ne maitrise absolument pas sed et awk, et non, je demandais juste un coup de main, pas que l'on me fasse mon script smile

Merci à toi d'avoir pris le temps de me répondre !

Hors ligne

#8 Le 10/11/2011, à 21:07

Hizoka

Re : [Résolu] Récupérer l'avancement de mkvmerge

Voila ce que j'utilise perso :

while read -d $'\r' ligne
do
    pourcentage=${ligne##* } pourcentage=${pourcentage%?}
    echo "le pourcentage est de : ${pourcentage}"
done < <(mkvmerge blabla bla 2>&1)

ca fait partie d'un logiciel (voir ma signature)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne