Forum Programmation.shell Mencoder + barre de progression

Posté par  .
Étiquettes : aucune
0
27
avr.
2009
Bonjour,

J'utilise un script "mencoder" qui me donne les pourcentages d'avancement de l'encodage. Je souhaite utiliser ces pourcentages d'avancement dans une barre de progression.

J'ai complété le script "mencoder" avec une fonction "ProgressBar" du type de celle qu'utilise wget.

Mon problème est que je n'arrive pas à exploiter les innombrables pourcentages qui sortent du script mencoder sous la forme :


1
1
1
2
2
2
3
3
3
etc... jusqu'à 100.

Il faudrait que je puisse passer tous ces chiffres à la fonction ProgressBar pour que celle-ci puisse afficher l'avancement.

Pourriez-vous m'aider ? Merci d'avance.
  • # quelle librairie ?

    Posté par  (site web personnel) . Évalué à 2.

    Salut, ta progressbar, c'est pour quel logiciel /librairie ?

    du shell, du qt, du gtk ? parce que bon...les progress bar ne sont pas très standradds entre elles...ça change à chaque fois
    • [^] # Re: quelle librairie ?

      Posté par  . Évalué à 2.

      Je pense que ce qu'il veut c'est exploiter la sortie de son script pour balancer l'avancement dans une fonction.

      Ça donnerai plutot ça donc:


      for progress in $(./script.sh)
      do
      echo "p: $progress"
      done


      Il faut bien entendu remplacer l'echo par sa fonction de progress bar.
      • [^] # Re: quelle librairie ?

        Posté par  . Évalué à 3.

        Il faut aussi remplacer le for par un while read, sinon la progression n'est affichée qu'une fois que l'exécution du programme initial est terminée.
  • # J'ai du mal à être clair. Je recommence.

    Posté par  . Évalué à 1.

    J'ai du mal à être clair. Je recommence.

    Imaginons un script bash avec deux fonctions :

    une fonction Encodage
    une fonction ProgressBar

    La fonction Encodage aurait cette tête là :


    function Encodage {
    mencoder $tout_le_tralala 2>&1 | gawk -vRS='\r' '$1 ~ /Pos/ {gsub(/Pos:/," ");gsub(/%)/," ");gsub(/ \(/," ");if ($3>0)print $3; fflush();}' | zenity --progress --auto-close
    }


    La fonction ProgressBar aurait cette tête là :


    function ProgressBar {
    if [ -z $1 ]; then
    echo "Remember to set value for the progress bar"
    echo "progressbar percent [bar-char] [empty-char]"
    exit
    fi

    SOME="="

    EMPTY=" "

    COLUMNS=80


    LEFT=$(($COLUMNS*100/20))

    BAR_LENGTH=$(($(($COLUMNS*100))-$((2*$LEFT))-200))
    DOT=$(($BAR_LENGTH/100))
    PERCENT=$(($1*$DOT))


    NUMCHARS=0
    for ((i=0;$i<$LEFT;i=$i+100))
    do
    echo -n " "
    done
    echo -n "|"

    for ((i=0;$i<$PERCENT;i=$i+100))
    do
    echo -n "$SOME"
    NUMCHARS=$NUMCHARS+1
    done

    for ((i=$PERCENT;i<$BAR_LENGTH && $NUMCHARS<$((BAR_LENGTH/100));i=$i+100))
    do
    echo -n "$EMPTY"
    NUMCHARS=$NUMCHARS+1
    done

    echo "|"
    }


    Comment je peux faire pour que ProgressBar puisse récupérer les informations de pourcentage ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.