OpenCV guardando video en archivo

Creo que mi pregunta es bastante básica, pero estoy escribiendo este código en OpenCV para simplemente capturar datos de video de la cámara web y guardarlos en un archivo. Ahora el problema es que el archivo se crea en el destino deseado, inicialmente tiene un tamaño de unos 286 bytes. Luego, cuando asigno el primer fotograma al puntero, el tamaño aumenta a 414 bytes. Sin embargo, cuando ejecuto todo el código, el tamaño del video guardado permanece en 414 bytes. Por supuesto, como resultado, mi reproductor multimedia no puede reproducir el archivo y dice que "no está en un formato que QuickTime Player entienda". Y lo mismo ocurre con el reproductor VLC.

Aquí está mi código para el mismo:

#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 );
}

No sé por qué está sucediendo esto. Estoy usando el Mac OSX Lion y ejecutando Xcode.

¿Alguien ha enfrentado este problema antes? Si es así, ¿cómo podría resolverlo?

¡Gracias!

-Jash

Respuestas a la pregunta(3)

Su respuesta a la pregunta