Это работает для меня, я использую AVI
файлы.Вызовите видео с именем файла, в вашем основном цикле получите следующий кадр и завершите работу, прежде чем завершить или перейти на другое видео.
IplImage *videoframe;
int videoFps;
CvCapture *videoCapture=NULL;
int video(char *videoFile) {
int key;
/* load the AVI file */
videoCapture = cvCaptureFromAVI( videoFile );
/* always check */
if( !videoCapture )
return 0;
/* get fps, needed to set the delay */
videoFps = ( int )cvGetCaptureProperty( videoCapture, CV_CAP_PROP_FPS );
/* display video */
cvNamedWindow( "video", 0 );
}
void videoNext() {
if ( ! videoCapture ) return;
videoframe = cvQueryFrame( videoCapture );
if( !videoframe ) return;
cvShowImage( "video", videoframe );
/* quit if user press 'q' */
int key = cvWaitKey( 1000 / videoFps );
}
void videoShutdown() {
/* free memory */
cvReleaseCapture( &videoCapture );
cvDestroyWindow( "video" );
return;
}
Примечание: Opencv не поддерживает воспроизведение аудио аудио-выход-с-видео-обработки-с-OpenCV