1 (03.05.2011 02:19:48 отредактировано ultimatet41)

Тема: opencv

В общем возник следующий вопрос при записи видео средствами opencv полученное видео воспроизводится ускоренно, как это побороть?
Дабы полностью понять мой вопрос вот ссылка на тестовое видео (1.91MB) http://zalil.ru/30967405 , при воспроизведении которого обратите внимание на длительность ролика в вашем плеере и на длительность указанную на самом ролике и сравните их.

код записи:

 qDebug() << "REC run record";

    QDate date;
    QTime time;
    stopRec=true;
    qDebug() << "REC stopRec=true";

            //double fps = cvGetCaptureProperty (capture, CV_CAP_PROP_FPS);
           double fps = 10;
           qDebug() << "REC fps=10";
           
 // размер картинки

            CvSize size = cvSize(640, 480);
            qDebug() << "REC CvSize size = cvSize(640, 480);";

            CvVideoWriter *writer = cvCreateVideoWriter(filename.toLocal8Bit().data(), CV_FOURCC('M', 'J', 'P', 'G'), fps, size, 1);
            qDebug() << "REC CvVideoWriter *writer = cvCreateVideoWriter(filename.toLocal8Bit().data(), CV_FOURCC('M', 'J', 'P', 'G'), fps, size, 1);";

            assert(writer!=0);
            qDebug() << "REC assert(writer!=0);";

            IplImage *frame=0;
            qDebug() << "REC IplImage *frame=0;";

            CvFont font;
            cvInitFont(&font, CV_FONT_HERSHEY_COMPLEX, 1.0, 1.0);

            while(stopRec){
                QString str="Date "+date.currentDate().toString("yyyy.M.d")+" Time "+time.currentTime().toString("hh:mm:ss");
                frame = cvQueryFrame( capture );
                qDebug() << "REC frame = cvQueryFrame( capture );";

                cvPutText(frame, str.toLocal8Bit().data(), cvPoint(10, 430), &font, CV_RGB(0, 255, 255));

                cvWriteFrame(writer, frame);
                qDebug() << "REC cvWriteFrame(writer, frame);";
            }


            cvReleaseVideoWriter(&writer);
            qDebug() << "REC cvReleaseVideoWriter(&writer);";

Поделиться

2

Re: opencv

Ускоренно воспроизводиться потому что видмио FPS =10 попробуй 24 поставь.

Поделиться

3

Re: opencv

Спасибо за ответ, но к сожалению я изначально побывал писать с fps =24 и как не печально, но видеускорилось ещё сильнее, так же я экспериментировал с разрешением и это то же не пренесло успехов.

Поделиться

4

Re: opencv

ultimatet41 Обратись тогда к Yana она что то с этим делала вроде в этой теме http://meegos.ru/forum/viewtopic.php?id=4229

Поделиться

5

Re: opencv

спасибо за ссылку, но в той теме обсуждают совсем другое.

Поделиться

6 (04.05.2011 13:31:07 отредактировано Yana)

Re: opencv

ultimatet41, можно вопрос? На какой платформе ты пишешь видео из OpenCV - на Nokia N900/Maemo? У меня на N900/Maemo CvVideoWriter так и не заработал - в результате приходится сохранять видео альтернативными способами.

Поделиться

7

Re: opencv

На n900/maemo, собственно код показанный в первом посте и осуществляет запись.

Поделиться