Re: [pymecavideo] 5.4, on en est où ?

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


Salut :)

> Le seul vrai problème sous Windows, c'est openCV : GetCaptureProperty
> renvoie systématiquement 0, sans message d'erreur, quel que soit le fichier
> avi et indépendamment de pymecavideo...

et pourrais-tu regarder ce qui fonctionne comme proriétés ?
dans : CV_CAP_PROP_POS_MSEC
CV_CAP_PROP_POS_FRAMES
CV_CAP_PROP_POS_AVI_RATIO
CV_CAP_PROP_FRAME_WIDTH
CV_CAP_PROP_FRAME_HEIGHT
CV_CAP_PROP_FPS
CV_CAP_PROP_FOURCC
CV_CAP_PROP_FRAME_COUNT

Je t'ai joint le fichier adéquat. Voici son utilisation et les
résultats chez moi sur la vidéo g2.avi (dans data)

[jb@localhost src]$ python testfilm.py ../data/video/g2.avi
CV_CAP_PROP_POS_MSEC :  600.0
CV_CAP_PROP_POS_FRAMES :  15.0
CV_CAP_PROP_POS_AVI_RATIO :  0.9375
CV_CAP_PROP_FRAME_WIDTH :  400.0
CV_CAP_PROP_FRAME_HEIGHT :  300.0
CV_CAP_PROP_FPS :  25.0
CV_CAP_PROP_FOURCC :  808802372.0
CV_CAP_PROP_FRAME_COUNT :  16.0

Merci :)

JB
#!/usr/bin/python
# -*- coding: utf-8 -*-

import cv
import sys, threading, os.path

class film:
    """
    Une classe pour accéder aux images d'un film
    """
    def __init__(self,filename):
        """
        le constructeur
        @param filename le nom d'un fichier video
        """
        self.filename=filename
        self.filesize=os.path.getsize(filename)
        self.capture=cv.CreateFileCapture(self.filename)
        t=threading.Thread(target=self.autoTest)
        t.start()
        t.join(5.0) # attente de 5 secondes au plus
        

    def autoTest(self):
        self.ok=False
        try:
            self.data=cv.GetCaptureProperty(self.capture,cv.CV_CAP_PROP_POS_MSEC)
            print "CV_CAP_PROP_POS_MSEC : ", self.data
            self.data=cv.GetCaptureProperty(self.capture,cv.CV_CAP_PROP_POS_FRAMES)
            print "CV_CAP_PROP_POS_FRAMES : ", self.data
            self.data=cv.GetCaptureProperty(self.capture,cv.CV_CAP_PROP_POS_AVI_RATIO)
            print "CV_CAP_PROP_POS_AVI_RATIO : ", self.data
            self.data=cv.GetCaptureProperty(self.capture,cv.CV_CAP_PROP_FRAME_WIDTH)
            print "CV_CAP_PROP_FRAME_WIDTH : ", self.data
            self.data=cv.GetCaptureProperty(self.capture,cv.CV_CAP_PROP_FRAME_HEIGHT)
            print "CV_CAP_PROP_FRAME_HEIGHT : ", self.data
            self.data=cv.GetCaptureProperty(self.capture,cv.CV_CAP_PROP_FPS)
            print "CV_CAP_PROP_FPS : ", self.data
            self.data=cv.GetCaptureProperty(self.capture,cv.CV_CAP_PROP_FOURCC)
            print "CV_CAP_PROP_FOURCC : ", self.data
            self.data=cv.GetCaptureProperty(self.capture,cv.CV_CAP_PROP_FRAME_COUNT)
            print "CV_CAP_PROP_FRAME_COUNT : ", self.data
            self.ok=True
        except:
            pass

    def __int__(self):
        return int(self.ok)
    def __nonzero__(self):
        return self.ok
        

if __name__ == '__main__':
    if len(sys.argv)>1:
        vidfile=sys.argv[1]
        if film(vidfile):
            sys.exit(0)
        else:
            sys.exit(1)



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