LINUX.ORG.RU

запись видео Opencv


0

1

Доброго времени суток. Сталкнулся с проблемой: на ubuntu 12.04 запись видео через функцию «*writer = cvCreateVideoWriter(filename, CV_FOURCC('X','V','I','D'), fps, size, 0);» работала. Обновил систему до 14.04. перестала работать функция. может кто уже сталкивался с такой проблемой?

Язык программирования Си.

заранее спасибо.


Обновил систему до 14.04. перестала работать функция

Какие версии opencv были до и после? В чем заключается «перестала»?

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

работало на варсии opencv 2.3.* не работает на варсии opencv 2.4.8

В чем заключается «перестала»?

программа каторая работала на прошлой версии не работает на новой. Файл создается, но в него ничего не пишется. и fps = -nan. хотя видео воспроизводится нормально.

daenur
() автор топика
Ответ на: комментарий от yoghurt
       
 // получаем любую подключённую камеру
       CvCapture *capture =  cvCreateFileCapture( "rtsp://192.168.120.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;
		printf("fps = %f\n",fps);
        // размер картинки
        //CvSize size = cvSize( (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH), (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT));
        CvSize size = cvSize(720, 576);

        CvVideoWriter *writer = cvCreateVideoWriter(filename, CV_FOURCC('D','I','V','X'), 25, size, 0);
        //assert(writer!=0);

        IplImage *frame=0;

        while(1){
                // получаем кадр
                frame = cvQueryFrame( capture );

                // сохраняем в файл
                cvWriteFrame(writer, frame);

                // показываем
                cvShowImage("capture", frame);  
                char c = cvWaitKey(25);
                if (c == 27) { // если нажата ESC - выходим
                        break;
                }
        }

        // освобождаем ресурсы
        cvReleaseCapture( &capture );
        cvReleaseVideoWriter(&writer);
        cvDestroyWindow("capture");
        return 0;

не работает функция:

// сохраняем в файл

cvWriteFrame(writer, frame);

daenur
() автор топика
Ответ на: комментарий от daenur

Я возможно совсем не в тему спрошу, но как там дела с правами записи в файл у программы?

pylin ★★★★★
()

Вместо CV_FOURCC('X','V','I','D') передай -1, тогда cvCreateVideoWriter покажет диалог выбора кодека со списком доступных. Что там есть?

При переходе с 12.04 на 14.04 удален ffmpeg, т.е. он заменен на libav. А openCV использует именно ffmpeg. Может здесь xvid зарыта?

fopen ★★
()

О, звиняюсь, что не в тему, но у меня вопросик, т.к. задолбался свои велосипеды писать.

Насколько шустро нонче opencv работает? А то, лет 5-10 назад, когда я первый раз с этой штукой познакомился, она неимоверно тормозила. И несчастную обработку (медианная фильтрация + свертка изображения 640х480 с предыдущим + лапласиан гауссианы + поиск экстремумов) проводила с жесточайшей медлительностью.

А как нонче с производительсностью этой библиотеки? И сколько ресурсов жрет? К пример, на raspberry pi оно вообще взлетит?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от fopen

Спасибо. не знал что они в 14.04 удалили ffmpeg. доставил вручную и все заработало.

daenur
() автор топика
Ответ на: комментарий от fopen

При переходе с 12.04 на 14.04 удален ffmpeg

Да уж. Очередное доказательство хитрого плана Шатлврота по реализации линуксокапца.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

не сталкивался с raspberry pi. Opencv систему грузит хорошо. на Core 2 Duo CPU P9300 2.26GHz x 2. при болиших вычислениях загрузка 50-60% на процессор.

daenur
() автор топика
Ответ на: комментарий от daenur

Ну а как насчет обработки в реальном времени? Десяток кадров в секунду потянет (необходимо выделять на изображении объекты и вычислять смещение относительно опорного кадра, либо же кросс-корреляцией вычислять смещение кадра)?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от fopen

Про этот даже не вспоминай! Я так понял, там крыса поселилась, которая хитрый план красношапки реализует.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

может и потянет. я работаю с 25 кадрами в сек.

daenur
() автор топика
Ответ на: комментарий от yoghurt

А при чем здесь OpenMAX? Уж этим велосипедом я стопудово пользоваться не буду!

Мне нужно взять видео, обработать в реальном времени и поместить последние 4 кадра в циклический буфер, чтобы клиент, зашедший через веб-морду, видел видео (раньше я CGI использовал для этого, сейчас вот думаю хотя бы управление реализовать через вебсокеты, а может и оставлю как было).

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.