Marrakech 0 Жалоба Опубликовано May 24, 2012 Всем добрый вечер! Уже как 3 дня изучаю openCV2.4 и пытаюсь снять видео с IP камеры. Пишу на QT под Windows. Поток видео представляет из себя H264 FullHD 30fps через протокол RTSP. URL по которому доступен поток с камеры : rtsp://192.xxx.x.xxx/h264 Читаю данные с помощью данного кода: { // allocate memory for an image IplImage *img; capture= cvCreateFileCapture("rtsp://192.xxx.x.xxx/h264"); // create a window to display the images cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE); // position the window cvMoveWindow("mainWin", 5, 5); while(1) { // retrieve the captured frame img=cvQueryFrame(capture); // show the image in the window cvShowImage("mainWin", img ); // wait 33 ms for a key to be pressed c=cvWaitKey(33); // escape key terminates program if(c == 27) break; } } При чтении первые несколько кадров отображаются нормально, затем начинается отображение кадров с артефактами в половину кадра. Притом я проверял данный URL в VLC и все работает. Как мне понятно, cvCreateFileCapture() - это оболочка над функциями библиотеки ffmpeg, на которой написан VLC. Т.е. по логике вещей, если VLC читает и декодирует поток, то и openCV2.4 со встроенным ffmpeg должна справиться. Я решил проверить, читает ли вообще H264 из файла. capture= cvCreateFileCapture("g://IronMan2 (2010) BluRay 1080p.mkv"); Из файла всё читает отлично и без артефактов. Помогите решить проблему . Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано May 24, 2012 Обычно помогает такое (?.расширение): "rtsp://192.xxx.x.xxx/h264?.mkv" Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Marrakech 0 Жалоба Опубликовано May 25, 2012 rtsp://192.ххх.х.ххх/h264?.mkv не открывается ни openCV, ни VLC (( если загружаю rtsp://192.xxx.x.xxx/h264, то ffmpeg в отладочном окне выдаёт следующую ересь.. init done [NULL @ 0b47fa20] Interleaved RTP mode is not supported yet.error while decoding MB 43 41, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 43 41, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 66 44, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 38 42, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 63 39, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 4 28, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 32 40, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 78 20, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 25 44, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 51 39, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 21 30, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 42 40, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 36 27, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 19 28, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 46 15, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 52 39, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 35 30, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 49 40, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 39 13, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 43 41, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 37 41, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 38 41, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 38 41, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 44 41, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 36 41, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 18 44, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 55 39, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 28 29, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 41 40, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 28 14, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 48 41, bytestream (td) [h264 @ 0ccd5be0] top block unavailable for requested intra mode at 79 0 [h264 @ 0ccd5be0] error while decoding MB 79 0, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 11 43, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 50 41, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 37 41, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 72 38, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 66 39, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 78 38, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 49 41, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 41 41, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 44 41, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 78 42, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 70 39, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 36 27, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 48 40, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 26 14, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 37 41, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 62 15, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 66 38, bytestream (td) [h264 @ 0ccd5be0] illegal short term buffer state detected [h264 @ 0cde1a20] error while decoding MB 7 37, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 68 27, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 75 2, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 54 35, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 53 27, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 79 1, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 68 34, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 78 2, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 62 28, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 22 40, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 68 3, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 31 29, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 28 43, bytestream (td) [h264 @ 0cde1a20] mmco: unref short failure [h264 @ 0cde1a20] illegal short term buffer state detected [h264 @ 0ccd5be0] mmco: unref short failure [h264 @ 0ccd5be0] illegal short term buffer state detected [h264 @ 0ccd5be0] error while decoding MB 49 35, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 0 2, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 76 2, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 25 29, bytestream (td) [h264 @ 0cde1a20] mmco: unref short failure [h264 @ 0cde1a20] illegal short term buffer state detected [h264 @ 0cde1a20] error while decoding MB 68 33, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 66 3, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 31 28, bytestream (td) [h264 @ 0cde1a20] mmco: unref short failure [h264 @ 0cde1a20] illegal short term buffer state detected [h264 @ 0ccd5be0] error while decoding MB 58 4, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 77 17, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 34 14, bytestream (td) [h264 @ 0cde1a20] mmco: unref short failure [h264 @ 0cde1a20] illegal short term buffer state detected [h264 @ 0cde1a20] error while decoding MB 53 17, bytestream (td) [h264 @ 0ccd5be0] left block unavailable for requested intra mode at 0 34 [h264 @ 0ccd5be0] error while decoding MB 0 34, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 60 18, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 50 43, bytestream (td) [h264 @ 0ccd5be0] mmco: unref short failure [h264 @ 0ccd5be0] illegal short term buffer state detected [h264 @ 0ccd5be0] error while decoding MB 6 18, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 66 18, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 13 1, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 51 19, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 77 1, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 11 28, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 0 38, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 73 2, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 29 30, bytestream (td) [h264 @ 0ccd5be0] mmco: unref short failure [h264 @ 0ccd5be0] illegal short term buffer state detected [h264 @ 0ccd5be0] error while decoding MB 73 32, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 59 3, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 22 28, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 69 14, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 79 32, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 59 4, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 68 28, bytestream (td) [h264 @ 0ccd5be0] illegal short term buffer state detected [h264 @ 0cde1a20] illegal short term buffer state detected [h264 @ 0ccd5be0] error while decoding MB 56 6, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 79 29, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 67 27, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 73 2, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 77 0, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 57 4, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 22 2, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 73 2, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 78 1, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 30 44, bytestream (td) [h264 @ 0ccd5be0] mmco: unref short failure [h264 @ 0ccd5be0] illegal short term buffer state detected [h264 @ 0ccd5be0] error while decoding MB 79 0, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 79 27, bytestream (td) [h264 @ 0cde1a20] mmco: unref short failure [h264 @ 0cde1a20] illegal short term buffer state detected [h264 @ 0cde1a20] error while decoding MB 72 28, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 74 2, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 78 2, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 63 27, bytestream (td) [h264 @ 0cde1a20] error while decoding MB 64 28, bytestream (td) [h264 @ 0ccd5be0] error while decoding MB 78 1, bytestream (td) Если я убираю из цикла строку cvShowImage("mainWin", img ); то программа запускается, fffmpeg пишет init и больше никаких ошибок. Внизу прикрепил файлы, имеющие артефакты Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Marrakech 0 Жалоба Опубликовано January 25, 2013 Всем привет. Проект был заброшен и вот опять началась работа в данном направлении. Хотел бы отписать о небольших "продвижениях" в решении данной проблемы. Наткнулся на блог разработчика http://workingwithcomputervision.blogspot.co.uk/2012/07/weve-finally-got-it-going-ill-get-onto.html В нём он пишет, что достаточно добавить ?tcp в конце адреса и видео будет идти без артефактов. Данная "приписка" заставляет работать ffmpeg -функции входящие в пакет openCV по tcp протоколу, вместо более производительного UDP. Всем известно что при tcp проверяется целостность каждого пакета. При udp есть какие-то проблемы с доставкой данных.. (надо разобраться) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Marrakech 0 Жалоба Опубликовано January 25, 2013 Декодирование теперь идёт без артефактов, но очень медленно, такое ощущение, что до адреса доходит только каждый 3-ий кадр..а 2 теряются. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Marrakech 0 Жалоба Опубликовано January 28, 2013 Сегодня буду пробовать привязывать vlc-qt к проекту. Попробую декодировать видео-поток с помощью библиотеку vlc. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Neuro 1 Жалоба Опубликовано June 28, 2015 Род Windows не писал, но недавно сам убил пол дня на поиск этого же ответа. ОпенСВ, использует для этого ffmpeg, соответственно умеет, то, что и он. Я делал так: находил ссылку на видео с камеры, обычно, это rtsp://admin:1234@[адрес-камеры] а дальше, строка у каждой модели своя. Если vlc откроет ссылку, то и opencv тоже. Я искал нугоем : модель камеры stream url Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах