Re: [pymecavideo] 5.4, on en est où ? |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/pymecavideo Archives
]
- To: pymecavideo@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [pymecavideo] 5.4, on en est où ?
- From: Jean-Baptiste BUTET <ashashiwa@xxxxxxxxx>
- Date: Mon, 2 May 2011 09:35:29 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=UaFPWXolT5x/fZ42xfJgjFTLskYwyhjDNPVE4mpM0ZU=; b=B8/d80tS9YGGaSbgxcQYzPwiUvPIMVx2OpU6ja8KsxMMO4T+2R+ICewFzBWVwGgbQz oCvpjGy1Q99EcTji6iI/9r2DOJtvpPX/INDiZKJDMgq26tKCcpm/o88V6sMS2KcBbWaw ClfybzhgNg753L8UgtdRBKpVpmPgnezOUexzs=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=PBsmVJrPbW3fQ4GIjqqStEMPk9UcrDdAPwA2taF15ffVfvAhNTL9QMAYF2jxNbd8l1 plHa6mdOStrNC4Dfp/dfaTRixVyWFKdetGUApOvGoFYTV5t5qaNucEtt0E4s1kWAttyg gHdKz96fh9U3U5B9EqPxYXUyRnjuSBEV5VuzA=
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)