Qubert 0 Жалоба Опубликовано August 26, 2012 Здравствуйте! Проблема описана в названии самой темы, тоесть: при записи в видео файл, я использую следующий код С++ : #include <cv.h> #include <highgui.h> #include <stdio.h> int main(int argc, char* argv[]) { cvNamedWindow("capture"); CvCapture *capture = cvCreateCameraCapture(CV_CAP_ANY); assert(capture!=0); const char *filename = "capture.avi"; double fps = 7; CvSize size = cvSize(640, 480); CvVideoWriter *writer = cvCreateVideoWriter(filename, CV_FOURCC('I','U','Y','V'), fps, size); assert(writer!=0); IplImage *frame=0; while(true){ frame = cvQueryFrame( capture ); cvWriteFrame(writer, frame); cvShowImage("capture", frame); char c = cvWaitKey(1); if (c == 27) { break; } } cvReleaseCapture( &capture ); cvReleaseVideoWriter(&writer); cvDestroyWindow("capture"); return 0; } я записываю его в формат avi, но я думаю, что особое внимание нужно уделить менно 4-х буквенным кодекам в функции CV_FOURCC('I','U','Y','V') в самом примере были CV_FOURCC('X','V','I','D'), но, когда создавался файл, его размер был = 0, и только при изменении этого 4-х буквенного кода все нормально записалось, но видео продолжительностью около 1 минуты у меня весит аж 135 мб...как можно сделать так, чтобы его размер был меньше, а лучше самый минимальный?! я пробовал менять формат и 4-х буквенный код, в соответсвии с ним, но файл вообще даже не создавался ! Большое спасибо !!! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано August 26, 2012 Кодеки надо поставить, например: K-Lite Mega Kodec Pack Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Qubert 0 Жалоба Опубликовано August 26, 2012 все равно не помогает я попробовал поменять формат на flv а буквы поменять на F L V 1 файл даже не создается а, если оставить avi, а буквы поменять на D I V X файл создастся, но размер = 0 точно также Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Pavia00 32 Жалоба Опубликовано August 26, 2012 Qubert Интерфейс для записи основан на FFMPEG. Причём FFMPEG был взят и давным давно и прикручен к OpenCV. С тех пор FFMpeg интерфейс поменял, а в OpenCV его не обновляли. Появилась приставка opencv_ opencv_ffmpeg.dll или opencv_ffmpeg_64.dll имеютс? Если нет то OpenCV будет цеплять vfw. vfw устарел и Microsoft не советует его использовать. Да и кодеки для него не распространены поставляются только в Mega K-Lite Kodec Pack. Нужна именно Mega. FULL, STANDART не годятся. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Qubert 0 Жалоба Опубликовано August 26, 2012 Qubert Интерфейс для записи основан на FFMPEG. Причём FFMPEG был взят и давным давно и прикручен к OpenCV. С тех пор FFMpeg интерфейс поменял, а в OpenCV его не обновляли. Появилась приставка opencv_ opencv_ffmpeg.dll или opencv_ffmpeg_64.dll имеютс? Если нет то OpenCV будет цеплять vfw. vfw устарел и Microsoft не советует его использовать. Да и кодеки для него не распространены поставляются только в Mega K-Lite Kodec Pack. Нужна именно Mega. FULL, STANDART не годятся. я Mega и качал вот отсюда http://codecguide.com/download_k-lite_codec_pack_mega.htm ! его ведь просто устанавливаешь и все? я просто с этим дело никогда не имел ! спасибо ! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Pavia00 32 Жалоба Опубликовано August 26, 2012 VFW поддерживает только файлы '*.avi' и '*.mpeg' Из кодеков тоже негусто. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Pavia00 32 Жалоба Опубликовано August 26, 2012 Лучше скачай opencv_ffmpeg.dll и положи рядом со своей программой https://code.ros.org/trac/opencv/export/5867/trunk/opencv/3rdparty/ffmpeg/opencv_ffmpeg.dll Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Qubert 0 Жалоба Опубликовано August 26, 2012 никак,не помогает Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано August 26, 2012 А здесь смотрели? : http://locv.ru/wiki/2.7_%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D1%8C_%D0%B2_AVI_%D1%84%D0%B0%D0%B9%D0%BB Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Qubert 0 Жалоба Опубликовано August 28, 2012 я оттуда и брал эти 4-х буквенные кодеки, изначально когда поставил k-lite mega codec pack, теперь видео файл с кодом I,U,Y,V даже не работает...тоесть все файлы у меня весят 0 кб Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах