Précédent   Forum des professionnels en informatique > Logiciels > Autres Logiciels > Vidéo
Vidéo Forum d'entraide sur les logiciels pour la gestion Vidéo, TV, logiciels Webcams, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2007, 14h54   #1
Membre du Club
 
Inscription : novembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 101
Points : 47
Points : 47
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 :
    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 :
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 :
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.
goran kajfes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2007, 18h32   #2
Membre du Club
 
Inscription : novembre 2005
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 101
Points : 47
Points : 47
J'ai pu récupérer les chaînes de caractères de type:
Code :
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.
goran kajfes est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h23.


 
 
 
 
Partenaires

Hébergement Web