daenur 2 Жалоба Опубликовано April 2, 2012 Доброго времени суток. Возник вопрос с записью потокового видео. Нашел в нете стандартный пример: #include "cv.h" #include "highgui.h" main( int argc, char* argv[] ) { CvCapture* capture = 0; capture = cvCreateFileCapture("rtsp://192.168.127.100:554/moxa-cgi/udpStreamer"); if(!capture) { return -1; } IplImage *bgr_frame=cvQueryFrame(capture);//Init the video read CvSize size = cvSize(720,576); // creates video: file to write -- codec that's gonna be used -- frame per second -- size of video frames -- grayscale or not CvVideoWriter *writer = cvCreateVideoWriter( "outvideo.avi", CV_FOURCC('D','I','V','X'), 25, size, 1 ); IplImage* logpolar_frame = cvCreateImage( size, IPL_DEPTH_8U, 1 ); while( (bgr_frame=cvQueryFrame(capture)) != NULL ) { cvWriteFrame( writer, bgr_frame ); }// cvReleaseVideoWriter( &writer ); cvReleaseImage( &logpolar_frame ); cvReleaseCapture( &capture ); return(0); } Пример компелится. но при при запуске выдает ощибку: what(): /home/tutov12/OpenCV-2.2.0/modules/highgui/src/cap_gstreamer.cpp:489: error: (-210) Gstreamer Opencv backend doesn't support this codec acutally. in function CvVideoWriter_GStreamer::open не могу понять какой именно кодек не подходит. а может я просто что то делаю не так. Недавно только изучаю Opencv. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано April 2, 2012 Линукс? Кодеки стоят все? P.S. Ник твой, случайно, не из Перумовской книжки? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
daenur 2 Жалоба Опубликовано April 2, 2012 Линукс? Кодеки стоят все? P.S. Ник твой, случайно, не из Перумовской книжки? Линукс. возможно и не все кодеки есть. у меня стоят вроде все gstreamer-ские библиотеки. может просто они не подходят для OpenCV-2.2.0? P.S да. из Перумовской книжки Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Tapcu 0 Жалоба Опубликовано May 28, 2012 У меня возникла та же проблема, daenur, у вас не появилось решения? Сколько ни гуглю эту ошибку, на всевозможных форумах снова и снова натыкаюсь на вопрос, но не на ответ... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
daenur 2 Жалоба Опубликовано June 6, 2012 У меня возникла та же проблема, daenur, у вас не появилось решения? Сколько ни гуглю эту ошибку, на всевозможных форумах снова и снова натыкаюсь на вопрос, но не на ответ... Решения так и не появилось. Как и вы натыкаюсь на одни вопросы без ответов.... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
daenur 2 Жалоба Опубликовано December 19, 2012 Решения так и не появилось. Как и вы натыкаюсь на одни вопросы без ответов.... давно собирался написать. нашел причину, почему не работала запись видео. выкладываю рабочий код. #include "cv.h" #include "highgui.h" main( int argc, char* argv[] ) { cvNamedWindow("capture",1); // получаем любую подключённую камеру CvCapture *capture = cvCreateFileCapture( "rtsp://192.168.127.100:554/moxa-cgi/udpstream_ch1_stream1"); // assert(capture!=0); const char *filename = "capture.avi"; // частота кадров //double fps = cvGetCaptureProperty (capture, CV_CAP_PROP_FPS); double fps = 15; // размер картинки //CvSize size = cvSize( (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH), (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT)); CvSize size;// = cvSize(640, 480); CvVideoWriter *writer = cvCreateVideoWriter("./src/asd.avi", CV_FOURCC('X','V','I','D'), 25, cvSize(720,576), 1); assert(writer!=0); IplImage *frame=0; while(TRUE){ // получаем кадр frame = cvQueryFrame( capture ); // показываем cvShowImage("capture", frame); // сохраняем в файл cvWriteFrame(writer, frame); char c = cvWaitKey(1); if (c == 27) { // если нажата ESC - выходим break; } } // освобождаем ресурсы cvReleaseCapture( &capture ); cvReleaseVideoWriter(&writer); cvDestroyWindow("capture"); return 0; } 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах