Otro codigo para hacer muestras de video, no esta muy bien comentado pero sirve


#include "cv.h"
#include "highgui.h"
 
long int MAXCUADROS=27000;//maximo de cuadros que se quieren grabar
 
 
int main(int argc, char** argv)
{
    int key=-1;
    CvCapture* capture = 0;
    capture = cvCaptureFromCAM( argc == 2 ? argv[1][0] - '0' : 0 );//captura del dispositivo 0 por defecto si no se le mete nada
    cvNamedWindow("Imagen",1);
    if( !capture )
    {
        fprintf(stderr,"No se pudo iniciar.\n");
        return -1;
    }
    //cvSetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH, 640 );
    //cvSetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT, 480 );
    IplImage* videoFrame = NULL;
    videoFrame = cvQueryFrame(capture);
    long int  cuadros=0;
    if(!videoFrame)
    {
        printf("mal cuadro \n");
        exit(0);
    }
    //CvVideoWriter* creavideo = cvCreateVideoWriter("C:\\video.avi",CV_FOURCC('M','J','P','G'), 29.95, cvSize(videoFrame->width, videoFrame->height));
    int cont=1;
    char nombre[100];
    while(1)
    {
    printf("C:\\video%d.avi",cont);
    sprintf(nombre,"C:\\video%d.avi",cont);
    CvVideoWriter* creavideo = cvCreateVideoWriter(nombre,CV_FOURCC('X','V','I','D'), 15.0, cvSize(videoFrame->width, videoFrame->height));
    cuadros=0;
        while( (cuadros < MAXCUADROS) && (key != 'q') )
        {
            cuadros++;
            videoFrame = cvQueryFrame(capture);
            cvShowImage("Imagen",videoFrame);
            cvWriteFrame(creavideo, videoFrame);
            key = cvWaitKey(20);
        }
    cvReleaseVideoWriter(&creavideo);
    if((key == 'q'))
        break;
    cont++;
    }
 
 
    cvReleaseCapture(&capture);
    return 0;
}