#include <iostream>
#include <cstdlib>
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char* argv[])
{
VideoCapture cap("C:/Users/Public/Videos/20151117214013.ts"); // open the video file for reading
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
cout << "Frame per seconds : " << fps << endl;
namedWindow("MyVideo",CV_WINDOW_AUTOSIZE); //create a window called "MyVideo"
while(1)
{
Mat frame;
bool bSuccess = cap.read(frame); // read a new frame from video
if (!bSuccess) //if not success, break loop
{
cout << "Cannot read the frame from video file" << endl;
break;
}
imshow("MyVideo", frame); //show the frame in "MyVideo" window
if(waitKey(30) == 27) //wait for 'esc' key press for 30 ms. If 'esc' key is pressed, break loop
{
cout << "esc key is pressed by user" << endl;
break;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgIm9wZW5jdjIvaGlnaGd1aS9oaWdoZ3VpLmhwcCIKI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIGN2Owp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKewogICAgVmlkZW9DYXB0dXJlIGNhcCgiQzovVXNlcnMvUHVibGljL1ZpZGVvcy8yMDE1MTExNzIxNDAxMy50cyIpOyAvLyBvcGVuIHRoZSB2aWRlbyBmaWxlIGZvciByZWFkaW5nCgogICAgaWYgKCAhY2FwLmlzT3BlbmVkKCkgKSAgLy8gaWYgbm90IHN1Y2Nlc3MsIGV4aXQgcHJvZ3JhbQogICAgewogICAgICAgICBjb3V0IDw8ICJDYW5ub3Qgb3BlbiB0aGUgdmlkZW8gZmlsZSIgPDwgZW5kbDsKICAgICAgICAgcmV0dXJuIC0xOwogICAgfQoKICAgIC8vY2FwLnNldChDVl9DQVBfUFJPUF9QT1NfTVNFQywgMzAwKTsgLy9zdGFydCB0aGUgdmlkZW8gYXQgMzAwbXMKCiAgICBkb3VibGUgZnBzID0gY2FwLmdldChDVl9DQVBfUFJPUF9GUFMpOyAvL2dldCB0aGUgZnJhbWVzIHBlciBzZWNvbmRzIG9mIHRoZSB2aWRlbwoKICAgICBjb3V0IDw8ICJGcmFtZSBwZXIgc2Vjb25kcyA6ICIgPDwgZnBzIDw8IGVuZGw7CgogICAgbmFtZWRXaW5kb3coIk15VmlkZW8iLENWX1dJTkRPV19BVVRPU0laRSk7IC8vY3JlYXRlIGEgd2luZG93IGNhbGxlZCAiTXlWaWRlbyIKCiAgICB3aGlsZSgxKQogICAgewogICAgICAgIE1hdCBmcmFtZTsKCiAgICAgICAgYm9vbCBiU3VjY2VzcyA9IGNhcC5yZWFkKGZyYW1lKTsgLy8gcmVhZCBhIG5ldyBmcmFtZSBmcm9tIHZpZGVvCgogICAgICAgICBpZiAoIWJTdWNjZXNzKSAvL2lmIG5vdCBzdWNjZXNzLCBicmVhayBsb29wCiAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBjb3V0IDw8ICJDYW5ub3QgcmVhZCB0aGUgZnJhbWUgZnJvbSB2aWRlbyBmaWxlIiA8PCBlbmRsOwogICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgaW1zaG93KCJNeVZpZGVvIiwgZnJhbWUpOyAvL3Nob3cgdGhlIGZyYW1lIGluICJNeVZpZGVvIiB3aW5kb3cKCiAgICAgICAgaWYod2FpdEtleSgzMCkgPT0gMjcpIC8vd2FpdCBmb3IgJ2VzYycga2V5IHByZXNzIGZvciAzMCBtcy4gSWYgJ2VzYycga2V5IGlzIHByZXNzZWQsIGJyZWFrIGxvb3AKICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgImVzYyBrZXkgaXMgcHJlc3NlZCBieSB1c2VyIiA8PCBlbmRsOyAKICAgICAgICAgICAgICAgIGJyZWFrOyAKICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMDsKCn0=