OpenCV访问网络摄像头并保存实时视频

// ConsoleApplication63.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
//#include "stdafx.h"
#include
#include
#include
#include
using namespace cv;

int main()
{
    //std::string RTSP;
    //RTSP = "rtsp://root:lbhxaxis@[169.254.216.140]/axis-media/media.amp?";
    
    //const std::string videoStreamAddress = RTSP;
    VideoCapture capture;
    capture.open("rtsp://root:lbhxaxis@[169.254.216.139]/axis-media/media.amp?",0);
    //capture.open("challenge.mp4");
    if (!capture.isOpened())
    {
        printf("can not open ...\n");
        return -1;
    }

    Size size = Size(capture.get(CV_CAP_PROP_FRAME_WIDTH), capture.get(CV_CAP_PROP_FRAME_HEIGHT));
    int frameRate = capture.get(CV_CAP_PROP_FPS);//帧率x frames/s
    VideoWriter writer;
    //writer.open("a1.avi", CV_FOURCC('D', 'I', 'V', 'X'), frameRate, size, true);
    writer.open("VideoTest3.avi", CV_FOURCC('D', 'I', 'V', 'X'), frameRate, size);
    Mat frame, gray;
    namedWindow("Video", CV_WINDOW_AUTOSIZE);

    while (capture.isOpened())
    {
        capture >> frame;
        //flip(frame, frame, 1);//翻转函数,0垂直旋转180度,1 水平旋转180度,-1表同时旋转
        //writer << frame;
        imshow("Video", frame);
        if (waitKey(33) == 27)//27是键盘摁下esc时,计算机接收到的ascii码值
        {
            break;
        }
    }
    capture.release();
    destroyAllWindows();

    //int i = 800;
    //while (capture.read(frame))
    //{
    //    if (i > 0) {
    //        imshow("output", frame);

    //        //    writer.write(frame);
    //        writer << frame;
    //        waitKey(10); i--;
    //    }
    //    else break;

    //}
    //return 0;
}

你可能感兴趣的:(OpenCV访问网络摄像头并保存实时视频)