Brak pliku wideo utworzonego przez OpenCV 2.3.1 z Pythonem na Raspberry Pi
Próbuję przechwycić wideo z kamery internetowej (Logitech c210) i utworzyć z niego plik wideo.
To jest na Raspbian Wheezy 2013-05-25.
Lampka na aparacie włącza się na około 30 sekund, ale plik nie jest tworzony. Mam kamerę internetową wyświetlaną w oknie OpenCV.
Zastanawiam się, czy jest to problem z kodekiem, ponieważ skrypt działa w systemie Windows z parametrem -1?
Jeśli tak, czy są jakieś zalecane kodeki dla Raspberry Pi?
Jeśli kupię kodek mpeg2, czy to zadziała?
Wymieniłem kodeki, których próbowałem, ale żaden z nich nie działa.
Skrypt jest następujący:
import cv2
import time
def InitialiseCamera():
camera = cv2.VideoCapture(0)
if camera is None:
print('Warning: unable to access camera')
else:
print('initialized camera')
return camera
def InitialiseWriter():
fps = 5
size = (640, 480)
destinationFile = 'video.avi'
# These are the codecs I've tried so far
codec = cv2.cv.CV_FOURCC('I','4','2','0')
#codec = cv2.cv.CV_FOURCC('A','V','C','1')
#codec = cv2.cv.CV_FOURCC('Y','U','V','1')
#codec = cv2.cv.CV_FOURCC('P','I','M','1')
#codec = cv2.cv.CV_FOURCC('M','J','P','G')
#codec = cv2.cv.CV_FOURCC('M','P','4','2')
#codec = cv2.cv.CV_FOURCC('D','I','V','3')
#codec = cv2.cv.CV_FOURCC('D','I','V','X')
#codec = cv2.cv.CV_FOURCC('U','2','6','3')
#codec = cv2.cv.CV_FOURCC('I','2','6','3')
#codec = cv2.cv.CV_FOURCC('F','L','V','1')
#codec = cv2.cv.CV_FOURCC('H','2','6','4')
#codec = cv2.cv.CV_FOURCC('A','Y','U','V')
#codec = cv2.cv.CV_FOURCC('I','U','Y','V')
#codec = -1
video = cv2.VideoWriter(destinationFile, codec, fps, size, True);
if video is None:
print('Warning: unable to create video writer')
else:
print('initialized writer')
return video
def CaptureVideo(c,w):
i = 0
while i<150:
i+=1
f,img = c.read()
try:
w.write(img)
except:
print "Unexpected error: ", sys.exec_info()[0]
print('complete')
c.release()
if __name__ == '__main__':
cam = InitialiseCamera()
writer = InitialiseWriter()
CaptureVideo(cam,writer)