+++ /dev/null
-#! /usr/bin/env python
-
-import sys
-
-# import the necessary things for OpenCV
-from opencv import cv
-from opencv import highgui
-
-# the codec existing in cvcapp.cpp,
-# need to have a better way to specify them in the future
-# WARNING: I have see only MPEG1VIDEO working on my computer
-H263 = 0x33363255
-H263I = 0x33363249
-MSMPEG4V3 = 0x33564944
-MPEG4 = 0x58564944
-MSMPEG4V2 = 0x3234504D
-MJPEG = 0x47504A4D
-MPEG1VIDEO = 0x314D4950
-AC3 = 0x2000
-MP2 = 0x50
-FLV1 = 0x31564C46
-
-#############################################################################
-# so, here is the main part of the program
-
-if __name__ == '__main__':
-
- # a small welcome
- print "OpenCV Python capture video"
-
- # first, create the necessary window
- highgui.cvNamedWindow ('Camera', highgui.CV_WINDOW_AUTOSIZE)
-
- # move the new window to a better place
- highgui.cvMoveWindow ('Camera', 10, 10)
-
- try:
- # try to get the device number from the command line
- device = int (sys.argv [1])
-
- # got it ! so remove it from the arguments
- del sys.argv [1]
- except (IndexError, ValueError):
- # no device number on the command line, assume we want the 1st device
- device = 0
-
- if len (sys.argv) == 1:
- # no argument on the command line, try to use the camera
- capture = highgui.cvCreateCameraCapture (device)
- else:
- # we have an argument on the command line,
- # we can assume this is a file name, so open it
- capture = highgui.cvCreateFileCapture (sys.argv [1])
-
- # check that capture device is OK
- if not capture:
- print "Error opening capture device"
- sys.exit (1)
-
- # capture the 1st frame to get some propertie on it
- frame = highgui.cvQueryFrame (capture)
-
- # get size of the frame
- frame_size = cv.cvGetSize (frame)
-
- # get the frame rate of the capture device
- fps = highgui.cvGetCaptureProperty (capture, highgui.CV_CAP_PROP_FPS)
- if fps == 0:
- # no fps getted, so set it to 30 by default
- fps = 30
-
- # create the writer
- writer = highgui.cvCreateVideoWriter ("captured.mpg", MPEG1VIDEO,
- fps, frame_size, True)
-
- # check the writer is OK
- if not writer:
- print "Error opening writer"
- sys.exit (1)
-
- while 1:
- # do forever
-
- # 1. capture the current image
- frame = highgui.cvQueryFrame (capture)
- if frame is None:
- # no image captured... end the processing
- break
-
- # write the frame to the output file
- highgui.cvWriteFrame (writer, frame)
-
- # display the frames to have a visual output
- highgui.cvShowImage ('Camera', frame)
-
- # handle events
- k = highgui.cvWaitKey (5)
-
- if k % 0x100 == 27:
- # user has press the ESC key, so exit
- break
-
- # end working with the writer
- # not working at this time... Need to implement some typemaps...
- # but exiting without calling it is OK in this simple application
- #highgui.cvReleaseVideoWriter (writer)