代码:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
//VideoCapture capture;
//capture.open("./bike.avi");
VideoCapture capture(0);
capture.set(CAP_PROP_FRAME_WIDTH, 640);
capture.set(CAP_PROP_FRAME_HEIGHT ,480);
if(!capture.isOpened())
{
printf("[%s][%d]could not load video data...\n",__FUNCTION__,__LINE__);
return -1;
}
double fps = capture.get(CAP_PROP_FPS);
printf("[%s][%d]fps = %f\n",__FUNCTION__,__LINE__,fps);
Size size = Size(capture.get(CAP_PROP_FRAME_WIDTH),capture.get(CAP_PROP_FRAME_HEIGHT));
cout << size << endl;
VideoWriter writer("usb_camera.avi", VideoWriter::fourcc('M', 'J', 'P', 'G'),fps, size,true);
Mat frame;
while(capture.read(frame))
{
imshow("video-demo",frame);
writer.write(frame);
char c = waitKey(33);
if(c == 27)
{
break;
}
}
capture.release();
waitKey(0);
return 0;
}
编译方法:
https://blog.csdn.net/StruggleToLife/article/details/98480725
错误:
OpenCV: FFMPEG: tag 0x00000898/'�???' is not found (format 'avi / AVI (Audio Video Interleaved)')'
参照我写的Videowrite就行了,具体什么原因没有深究。