#include <cstdio> #include <opencv2/opencv.hpp> using namespace cv; int main(){ VideoCapture capture(0); if(!capture.isOpened()){ return -1; } /* int fps = 15; //capSize = (1028,720) # this is the size of my source video fourcc = cv2.cv.CV_FOURCC('m', 'p', '4', 'v'); //self.vout = cv2.VideoWriter(); success = self.vout.open('/Users/powenko/Desktop/output.mov',fourcc,fps,capSize,True) */ Size videoSize = Size((int)capture.get(CV_CAP_PROP_FRAME_WIDTH),(int)capture.get(CV_CAP_PROP_FRAME_HEIGHT)); VideoWriter writer; // writer.open("/Users/powenko/Desktop/VideoTest.avi", CV_FOURCC('m', 'p', '4', 'v'), 15, videoSize); //其他系統上使用 writer.open("/Users/powenko/Desktop/VideoTest.mov", CV_FOURCC('m', 'p', '4', 'v'), 15, videoSize); // MAC 可以使用 /* CV_FOURCC('P', 'I', 'M', '1') = MPEG-1 codec CV_FOURCC('M', 'J', 'P', 'G') = motion-jpeg codec CV_FOURCC('M', 'P', '4', '2') = MPEG-4.2 codec CV_FOURCC('D', 'I', 'V', '3') = MPEG-4.3 codec CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4 codec CV_FOURCC('U', '2', '6', '3') = H263 codec CV_FOURCC('I', '2', '6', '3') = H263I codec CV_FOURCC('F', 'L', 'V', '1') = FLV1 codec */ namedWindow("show image",0); while(true){ Mat frame; capture >> frame; if(!frame.empty()){ writer.write(frame); //capture >> frame; //writer << frame; imshow("show image", frame); if(waitKey(33) == 27){ break; } } } return 0; }