Last active
August 29, 2015 14:00
-
-
Save justinledwards/11228778 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <opencv/cv.h> | |
| #include "opencv2/highgui/highgui.hpp" | |
| #include <iostream> | |
| using namespace cv; | |
| using namespace std; | |
| int main(int argc, char* argv[]) | |
| { | |
| VideoCapture cap(0);// open the video file for reading | |
| //cap.open("C:/Users/ctisje1/SampleVideo.avi"); | |
| //if (!cap.isOpened()) // if not success, exit program | |
| //{ | |
| // cout << "Cannot open the video file" << endl; | |
| // return -1; | |
| //} | |
| //cap.set(CV_CAP_PROP_POS_MSEC, 300); //start the video at 300ms | |
| //double fps = cap.get(CV_CAP_PROP_FPS); //get the frames per seconds of the video | |
| double fps = 5; //override fps to what brett wants | |
| cout << "Frame per seconds : " << fps << endl; | |
| namedWindow("MyVideo", CV_WINDOW_AUTOSIZE); //create a window called "MyVideo" | |
| double dWidth = cap.get(CV_CAP_PROP_FRAME_WIDTH); //get the width of frames of the video | |
| double dHeight = cap.get(CV_CAP_PROP_FRAME_HEIGHT); //get the height of frames of the video | |
| cout << "Frame Size = " << dWidth << "x" << dHeight << endl; | |
| Size frameSize(static_cast<int>(dWidth), static_cast<int>(dHeight)); | |
| VideoWriter oVideoWriter("C:/Users/ctisje1/MyVideo.avi", CV_FOURCC('W', 'M', 'V', '2'), fps, frameSize, true); //initialize the VideoWriter object | |
| if (!oVideoWriter.isOpened()) //if not initialize the VideoWriter successfully, exit the program | |
| { | |
| cout << "ERROR: Failed to write the video" << endl; | |
| return -1; | |
| } | |
| while (1) | |
| { | |
| Mat frame; | |
| cap.retrieve(frame); | |
| bool bSuccess = cap.read(frame); // read a new frame from video | |
| if (!bSuccess) //if not success, break loop | |
| { | |
| cout << "ERROR: Cannot read a frame from video file" << endl; | |
| break; | |
| } | |
| oVideoWriter.write(frame); //writer the frame into the file | |
| imshow("MyVideo", frame); //show the frame in "MyVideo" window | |
| if (waitKey(10) == 27) //wait for 'esc' key press for 30ms. If 'esc' key is pressed, break loop | |
| { | |
| cout << "esc key is pressed by user" << endl; | |
| break; | |
| } | |
| } | |
| return 0; | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment