OpenCV сохранение видео в файл
Я думаю, что мой вопрос довольно простой, но я пишу этот код в OpenCV, чтобы просто захватывать видеоданные с веб-камеры и сохранять их в файл. Теперь проблема в том, что файл создается в желаемом месте, его размер составляет около 286 байт. Затем, когда я назначаю первый кадр указателю, размер увеличивается до 414 байт. Однако, когда я запускаю весь код, размер сохраненного видео остается 414 байтов. Конечно, в результате мой медиаплеер не может воспроизвести файл и говорит, что «не в том формате, который понимает QuickTime Player». и то же самое происходит с плеером VLC.
Вот мой код для того же:
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
int main( int argc, char** argv ) {
CvCapture* capture;
capture = cvCreateCameraCapture(0);
assert( capture != NULL );
IplImage* bgr_frame = cvQueryFrame( capture );
CvSize size = cvSize(
(int)cvGetCaptureProperty( capture,
CV_CAP_PROP_FRAME_WIDTH),
(int)cvGetCaptureProperty( capture,
CV_CAP_PROP_FRAME_HEIGHT)
);
cvNamedWindow( "Webcam", CV_WINDOW_AUTOSIZE );
CvVideoWriter *writer = cvCreateVideoWriter( "/Users/user/Desktop/OpenCV_trial/OpenCV_trial/vidtry.AVI",
CV_FOURCC('D','I','V','X'),
30,
size
);
while( (bgr_frame = cvQueryFrame( capture )) != NULL )
{
cvWriteFrame(writer, bgr_frame );
cvShowImage( "Webcam", bgr_frame );
char c = cvWaitKey( 33 );
if( c == 27 ) break;
}
cvReleaseVideoWriter( &writer );
cvReleaseCapture( &capture );
cvDestroyWindow( "Webcam" );
return( 0 );
}
Я не знаю, почему это происходит. Я использую Mac OSX Lion и запускаю Xcode.
Кто-нибудь сталкивался с этой проблемой раньше? Если так, как я мог решить это?
Спасибо!
-Yash