Перейти к содержимому
Compvision.ru
brutalis

получение видео с IP камеры

Recommended Posts

Всех приветствую.проблема такая: есть ип камера. нужно получить с нее картинку,а точнее видео. подскажите как это лучше реализовать. самостоятельный поиск мало помог.

нашел несколько решений.

1. через регистрацию камеры в сис

int KamIndex,c,x,y;

     c = lineEdit->text().toInt() ;

     c = indexBox->text().toInt() ;

     x=x_coordinate->text().toInt() ;

     y=y_coordinate->text().toInt() ;

    KamIndex=c;

    //#####################------------------просто доступ к камере

            // задаём высоту и ширину картинки

            // получаем любую подключённую камеру

        //CVAPI(CvCapture*) cvCreateCameraCapture( int index );

        //CVAPI(int) cvSaveImage( const char* filename, const CvArr* image, const int* params CV_DEFAULT(0) );


        //номер камеры в системе(number of cameras in the system)


        //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


        CvCapture* capture =  cvCaptureFromCAM( KamIndex );

        //cvCreateCameraCapture(CV_CAP_ANY);//

        //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


        if(capture == NULL)

            // Если камер не обнаружено

         proverka();

             assert( capture );


           cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, x);//1280);

           cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT,y);//960);


             // узнаем ширину и высоту кадра

            // double width = cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH);

           //  double height = cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT);

             //printf("[i] %.0f x %.0f\n", width, height );


             IplImage* frame=0;

             cvNamedWindow("capture", CV_WINDOW_AUTOSIZE);

             printf("[i] press Enter for capture image and Esc for quit!\n\n");

             int counter=0;

             char filename[512];

             while(true){

                     // получаем кадр

                     frame = cvQueryFrame( capture );

                     // показываем

                     cvShowImage("capture", frame);

                     char c = cvWaitKey(33);

                     if (c == 27) { // нажата ESC

                             break;

                     }

                     else if(c == 13) { // Enter

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

                             sprintf(filename, "Image%d.jpg", counter);

                             printf("[i] capture... %s\n", filename);

                             cvSaveImage(filename, frame);

                             counter++;

                     }

             }

             // освобождаем ресурсы

             cvReleaseCapture( &capture );

             cvDestroyWindow("capture");
не подходит т.к. для регистрации нужны админские права, что в данной ситуации не подходит. и как выяснилось в последствии,в моем случае, с камерой d-link dcs-932l ну работает 2.должен напрямую по ип подключаться
{using namespace std;    using namespace cv;

           VideoCapture vid("http://admin:admin123@192.168.0.20/video/mjpg.cgi?&.mjpg");//("http://192.168.0.20:80/videostream.cgi?user=admin&pwd=admin123&resolution=32");//; //169.254.214.34 change this URL according to your camera

       if (!vid.isOpened())

       {

           cout << "could not capture";

            //break;

       }


      Mat frame;

      // IplImage *frame=0;

       cvNamedWindow("IPcamera");

       char key = 'a';


       while(true)

       {


           vid.grab();

           vid.retrieve(frame);

           imshow("IPcamera", frame);

           key = waitKey(10);

       }


       destroyAllWindows();

при выполнении критует

post-6418-0-80707100-1383404285_thumb.pn. может где ошибка?

подскажите как можно еще получить видео с ип камеры

пользую qt 4.8 b opencv

video.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Найти ссылку, открыв которую, например в vlc , Вы увидите видеопотока. И просто скормить её opencv. Opencv использует для работы с видео ffmpeg, и умеет соответственно то что и он. У меня открывает rtsp поток прямо с камеры cv2.Capture(url)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×