Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

VideoWriter writing invalid videos

I'm using the code described below to record my webcam on macbook pro. The file being generated is not a valid video, and I can't open it in a video player When I try to use CV_FOURCC('X','V','I','D') the output is an 'output.mov' file with 414kb (everytime I run the program this size is the same). I tried to change FOURCC to: CV_FOURCC('m', 'p', '4', 'v'). In that case the file are geting bigger for every second that I kept the webcam on, but I still can't open the video file. How can I record this video?

    cap = cv2.VideoCapture(0)

    w=int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH ))
    h=int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT ))
    fps = cap.get(cv2.cv.CV_CAP_PROP_FPS)

    fourcc = cv2.cv.CV_FOURCC('X','V','I','D')
    vout = cv2.VideoWriter()
    capSize = (w, h)
    success = vout.open('output.mov',fourcc,fps,capSize,True)

    while(vid.isOpened()):
        ret, frame = cap.read()

        if ret == True:
            vout.write(frame)
            cv2.imshow("frame", frame)

            if cv2.waitKey(1) & 0xFF == ord('q'):
                break

PS: When I tried to open the mp4v format the error ir:

it generates the error:

Application Specific Information: * Terminating app due to uncaught exception 'NSRangeException', reason: '* -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array' terminating with uncaught exception of type NSException abort() called