Keine von OpenCV 2.3.1 mit Python auf Raspberry Pi erstellte Videodatei

Ich versuche, Videos von einer Webcam (Logitech c210) aufzunehmen und daraus eine Videodatei zu erstellen.

Dies ist auf Raspbian Wheezy 25.05.2013.

Das Licht an der Kamera leuchtet ungefähr 30 Sekunden lang auf, es wird jedoch keine Datei erstellt. Ich habe die Webcam in einem OpenCV-Fenster anzeigen lassen.

Ich frage mich, ob dies ein Codec-Problem ist, da das Skript unter Windows mit dem Parameter -1 funktioniert.

Wenn ja, gibt es empfohlene Codecs für Raspberry Pi?

Wenn ich den mpeg2-Codec kaufe, würde das funktionieren?

Ich habe die Codecs aufgelistet, die ich ausprobiert habe, obwohl keine funktionieren.

Das Skript sieht wie folgt aus:

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)

Antworten auf die Frage(3)

Ihre Antwort auf die Frage