我是 OpenCV 的新手,试图用 ffmpeg 录制简单的视频,但大小每次都是 0kb ......我用 Cinepak 编解码器取得了成功,但视频录制速度很快,或者我将 fps 设置为 4 和 cwWaitKey(20) .. 这里是我正在尝试的代码..
cvNamedWindow("Webcam", CV_WINDOW_AUTOSIZE);
CvCapture *cap; cap = cvCreateCameraCapture(0);
IplImage *img; img = cvQueryFrame(cap);
CvVideoWriter *writer;
double fps = cvGetCaptureProperty(cap, CV_CAP_PROP_FPS);
int camWidth = (int)cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_WIDTH);
int camHeight = (int)cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_HEIGHT);
CvSize size = cvSize(camWidth, camHeight);
writer = cvCreateVideoWriter("record.avi", CV_FOURCC('M','J','P','G'), fps, size);
while(cvQueryFrame(cap))
{
img = cvRetrieveFrame(cap);
cvWriteFrame(writer, img);
cvShowImage("Webcam", img);
cvWaitKey(20);
}
//在这里释放东西。
有人可以告诉我我做错了什么吗?谢谢你。
PS 我也尝试了其他 FOURCC,但结果仍然相同,文件为 0 kbytes,没有写入任何内容.. 帮助 :( 尝试了 FOURCC:XVID、MP4V、FVFW、MPEG、MPG1/2、WM1/2。
PPS 使用 Windows 7 x64,安装了 ffmpeg x86 和 x64 版本。