[pymecavideo] Re: [essais divers]c'est les vacances !!

[ Thread Index | Date Index | More lists.tuxfamily.org/pymecavideo Archives ]


révision 368 == devel <- trunk actuel

JB

Le 12 avril 2012 10:54, Jean-Baptiste BUTET <ashashiwa@xxxxxxxxx> a écrit :
Bonjour, 
Bon... l'utilisation de ffmpeg dépasse mes compétences. Il reste vlc.

J'ai plein de bouts de codes qui fonctionnent mais qui ont tous leurs petits défauts.

Conclusion personnelle : j'ai bien joué avec QT et le C++, j'ai franchement appris plein de choses (les pointeurs, les références tout ça)... mais rien ne convient parfaitement à pymecavideo.
(tiens d'ailleurs, le wrapper python Opencv fonctionne très bien...alros que la bibli en C++ non... va comprendre...)


Conclusion personnelle 2 : 
Pymecavideo est lent dès qu'il y a beaucoup de points à gérer. La version "trunk" est vraiment aboutie mais non optimisée.
Je vais donc prendre du temps à l'optimiser. Voici quelques pistes : (ordre de priorité décroissante)
---> dessins des points : 
la solution adoptée actuellement est que caque point est un QLabel qui se superpose aux autres. Au bout de 30 clics (ce qui arrive), on a 30 labels les uns sur les autres. Nuls doutes que les lenteurs ressenties proviennent de là en majorité.
---> l'échelle : la mise en place d'une échelle n'est valable que si on veut faire des mesures. (vitesse, longueur) Actuellement, au vu des programmes de seconde et premières S, ceci n'est pas "forcément utilisé". Il serait intéressant de pouvoir cliquer sur les points sans créer d'échelles.

Solutions : -> "peindre" les points en une fois sur un seul qlabel, grâce à leur coordonnées à chaque appel du "painter"











Le 11 avril 2012 14:32, Jean-Baptiste BUTET <ashashiwa@xxxxxxxxx> a écrit :

Bonjour à tous, 

j'ai la chance d'être dans les premiers en vacances et donc je fais des tests.

Objectif : rééecrire pymecavideo en C++ pour gagner en vitesse et facilté de déploiement.

Premier essai : 
---> tout Opencv.
Opencv est une bibliothèque haut niveau de intel permettant de gérer les vidéo, qu'elles soient issues d'une webcam ou d'un fichier.
C'est le graal pour pymecavideo : 
--> haut niveau -> pas de gestion des codecs
--> filtres de détection (pour automatiser certaines captures)
--> intégration dans qt assez simple

__dans la branche devel__, tout le code pour opencv se situe jusqu'à la révision 354-355

Un gros bug dans opencv n'a pas permis d'aller plus loin : Il est impossible de se déplacer dans la vidéo. Impossible par exemple de dire "va à l'image situé à 4000 ms ou encore, va à l'image N° 67.
Ces fonctions sont implémentées mais non fonctionnelles avec ma version :

[jb@localhost devel]$ rpm -qa | grep opencv
libopencv_flann2-2.2.0-2.mga1
opencv-devel-2.2.0-2.mga1
libopencv_imgproc2-2.2.0-2.mga1
libopencv_video2-2.2.0-2.mga1
libopencv_contrib2-2.2.0-2.mga1
libopencv_highgui2-2.2.0-2.mga1
libopencv_features2d2-2.2.0-2.mga1
libopencv_legacy2-2.2.0-2.mga1
libopencv_core2-2.2.0-2.mga1
libopencv_calib3d2-2.2.0-2.mga1
libopencv_objdetect2-2.2.0-2.mga1
libopencv_ml2-2.2.0-2.mga1


Deuxième essai : Phonon est une partie de Qt (Kde plutôt) qui gère tout ce qui est "média". Il y a a disposition un widget pratique : qvideoplayer qui permet d'afficher une vidéo.
A priori prometteuse, cette solution n'est pas parfaite : 
--> obligation d'utiliser un outil tiers pour avoir les "fps". (en l'occurence, j'ai pris opencv ;) )
--> impossibilité de dessiner au dessus d'un videoWidget : bugs d'affichages divers.
-------> hacking obligatoires pour afficher ne serait-ce qu'une échelle : on cache le video widget en ayant pris soit de "grabber" (extraire) l'image dans le widget puis on injecte cette image dans un widget supérieur qui permet de dessiner.
Problème : impossibilité de lire la vidéo et de garder l'échelle visible. Pire : si on veut remettre le widget video au dessus de l'autre, on se heurte à des segfaults sympathiques.

Compte tenu du temps passé et de ce que l'on veut arriver à en faire, pour le moment, je stoppe la partie "phonon". Je vais pas contre essayer opencv en version 2.3.

Je vous tiens au courant sous peu.

Si vous voulez vous amuser... le code est lisible pour la partie phonon à la révision 364 et 365... avant... c'est... du prototypage.

A+

JB


---historique des version : 
 
------------------------------------------------------------------------
r365 | djibb | 2012-04-10 13:57:50 +0200 (mar. 10 avril 2012) | 2 lignes

try to paint scale

------------------------------------------------------------------------
r364 | djibb | 2012-04-10 09:35:21 +0200 (mar. 10 avril 2012) | 2 lignes

code cleaning

------------------------------------------------------------------------
r362 | djibb | 2012-04-09 22:54:44 +0200 (lun. 09 avril 2012) | 1 ligne

playing with compiling
------------------------------------------------------------------------                                                                                                                                           
r361 | djibb | 2012-04-09 21:27:16 +0200 (lun. 09 avril 2012) | 1 ligne                                                                                                                                            
                                                                                                                                                                                                                   
playing with painting pixmap
------------------------------------------------------------------------
r360 | djibb | 2012-04-09 20:27:04 +0200 (lun. 09 avril 2012) | 2 lignes

playing with phonon to make a scale

------------------------------------------------------------------------
r359 | djibb | 2012-04-09 11:14:17 +0200 (lun. 09 avril 2012) | 1 ligne

grab snapshot works
------------------------------------------------------------------------
r358 | djibb | 2012-04-08 22:28:24 +0200 (dim. 08 avril 2012) | 1 ligne

try phonon with success
------------------------------------------------------------------------
r357 | djibb | 2012-04-08 22:06:32 +0200 (dim. 08 avril 2012) | 1 ligne

try phonon with success
------------------------------------------------------------------------
r356 | djibb | 2012-04-08 20:47:00 +0200 (dim. 08 avril 2012) | 1 ligne

try phonon
------------------------------------------------------------------------
r355 | djibb | 2012-04-07 22:32:37 +0200 (sam. 07 avril 2012) | 1 ligne

end of opendc integration, bug due to opencv. Trying phonon
------------------------------------------------------------------------
r354 | djibb | 2012-04-07 18:58:37 +0200 (sam. 07 avril 2012) | 1 ligne

end of opencv integration
------------------------------------------------------------------------
r353 | djibb | 2012-04-07 14:49:26 +0200 (sam. 07 avril 2012) | 1 ligne

integration opencv
------------------------------------------------------------------------
r352 | djibb | 2012-04-07 13:07:42 +0200 (sam. 07 avril 2012) | 1 ligne

open cv integration tests
------------------------------------------------------------------------
r351 | djibb | 2012-04-07 09:59:56 +0200 (sam. 07 avril 2012) | 1 ligne

opencv integration begins
------------------------------------------------------------------------
r350 | djibb | 2012-04-01 21:56:48 +0200 (dim. 01 avril 2012) | 1 ligne

open video file infrastructure
------------------------------------------------------------------------
r349 | djibb | 2012-04-01 21:35:52 +0200 (dim. 01 avril 2012) | 1 ligne

open video file infrastructure
------------------------------------------------------------------------
r348 | djibb | 2012-03-25 21:56:22 +0200 (dim. 25 mars 2012) | 1 ligne

nouvelle version de développement en C++
------------------------------------------------------------------------







Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/