IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Vidéo Discussion :

mencoder et barre de progression


Sujet :

Vidéo

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 128
    Points : 122
    Points
    122
    Par défaut mencoder et barre de progression
    Bonjour à tous!

    Je cherche une méthode 'propre' pour afficher le % de progression de l'encodage d'une vidéo via mencoder dans une barre prévu à cet effet.

    - J'ai réussi à le faire à partir de divx2pass.log (méthode 1), fichier de log créé automatiquement par mencoder:
    • à chaque seconde je compte les lignes de divx2pass.log, sachant que chaque ligne du fichier correspond à un frame encodé

    • je récupère le nombre de frames par secondes et la durée de la vidéo pour obtenir le nombre total de frames

    • j'en déduis le % par une division


    - Une autre méthode (méthode 2) serait de lire le % de progression dans un fichier de log que l'on créé ($ mencoder fichierSource [options] -o fichierSorti > 'log'):
    • cela revient à récupérer à chaque seconde la dernière ligne (1) du fichier 'log' (le fichier peut prendre une centaine de milliers de lignes).
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Pos: 154.5s   3867f (55%) 283.23fps Trem:   0min  23mb  A-V:-0.003 [480:224]


    Problèmes:
    • La 1ère méthode ne me paraît pas totalement robuste. Je suis obligé de récupéré les information via mencoder et mplayer (je lance même mplayer une fraction de seconde). Je n'obtiens pas directement le % de progression.

    • La 2ème méthode consommerait trop de ressources puisqu'on doit traiter toutes les lignes d'un long fichier pour arriver à extraire le % (je ne suis pas arrivé à faire autrement en python ou avec des commandes linux)



    Je voudrais pouvoir récupérer les % de progression et les lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pos: 154.5s   3867f (55%) 283.23fps Trem:   0min  23mb  A-V:-0.003 [480:224]
    ... sans passer par un fichier de log. Vous allez comprendre.

    Si on exécute mencoder dans un terminal, on obtient par ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    $ mencoder /home/login/videos/later-dv.mpg -ovc lavc -lavcopts
    
    vcodec=mpeg2video:vqmin=15:vpass=1 -oac copy -o toto.mpg
    MEncoder 2:1.0~rc1-0ubuntu9.2 (C) 2000-2006 MPlayer Team
    CPU: AMD Athlon(tm) 64 Processor 3500+ (Family: 15, Model: 79, Stepping: 2)
    CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1
    Compiled with runtime CPU detection.
    
    [...]
    
    1 duplicate frame(s)!
    Pos:   0.8s     22f ( 0%)  0.00fps Trem:   0min   7mb  A-V:0.084 [0:224]
    Skipping frame!
    Pos:   2.3s     60f ( 1%)  0.00fps Trem:   0min   7mb  A-V:0.080 [36:224]
    Skipping frame!
    Pos: 278.5s   6966f (100%) 321.19fps Trem:   0min  23mb  A-V:0.004 [474:224]
    Flushing video frames
    Writing index...
    Writing header...
    ODML: Aspect information not (yet?) available or unspecified, not writing vprp 
    header.
    
    Video stream:  474.375 kbit/s  (59296 B/s)  size: 16512977 bytes  278.480 secs  
    6966 frames
    
    Audio stream:  224.000 kbit/s  (28000 B/s)  size: 7799955 bytes  278.570 secs
    Comme vous le voyez seule 3 lignes de "Pos:..." sont renvoyées. En l'état ce n'est pas exploitable pour suivre la progression de l'encodage puisqu'on ne récupèrerait qu'un nombre limité de pourcentage. Comment afficher d'avantage de lignes de "Pos..." (par ex dans un terminal - si tel est le cas je pourrais facilement me débrouiller pour exploiter ces lignes) sans passer par un fichier externe de plusieurs milliers de lignes?

    Cela serait sans doute la méthode la plus simple et élégante.

    Je me suis attardé sur le page de manuel de mencoder mais sans succès.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 128
    Points : 122
    Points
    122
    Par défaut
    J'ai pu récupérer les chaînes de caractères de type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pos: 154.5s   3867f (55%) 283.23fps Trem:   0min  23mb  A-V:-0.003 [480:224]
    pour obtenir la progression de mencoder.

    En fait je n'arrivais pas à les récupérer car j'attendais des lignes, alors que les chaînes de caractères "Pos:..." n'en étaient pas vraiment. En effet, elles se terminent par '\r' qui n'est pas un retour-chariot de fin de ligne sous les systèmes Unix.

    Le problème n'avait donc pas grand-chose avec mencoder. Je passe en résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Indy FTP (idFTP) faire une barre de progress de transfert
    Par Harry dans le forum Web & réseau
    Réponses: 4
    Dernier message: 09/07/2004, 13h15
  2. [VB.NET] Pb avec le bouton Annuler d'1 barre de progression
    Par dada1982 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/06/2004, 09h56
  3. Réponses: 12
    Dernier message: 27/05/2004, 00h13
  4. [DEBUTANT] Barre de progression
    Par pupupu dans le forum MFC
    Réponses: 4
    Dernier message: 18/01/2004, 16h47
  5. [web] Barre de Progression ASCII
    Par Red Bull dans le forum Web
    Réponses: 13
    Dernier message: 05/06/2003, 12h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo