2016-03-08 9 views
0

Я хочу захватить видеопоток из ip. Я видел это, но имя типа cvCreateFileCapture не существует на cvInvoke в Emgu 3.0, есть ли способ захватить видео из ip?Интеграция IP-камер в Emgu Capture

Я попытался использовать это, это не сработало, но в окне сообщения показано, что захват не равен нулю. imageCamera пуст

_capture = new Capture("http://uname:[email protected]/axis-cgi/mjpg/video.cgi");here 
if (_capture != null) //if camera capture has been successfully created 
     { 
      MessageBox.Show("Capture success"); 
      _capture.ImageGrabbed += ProcessFrame; 
      _capture.Start(); 
     } 

_capture.Retrieve(frame, 0); 
Image<Bgra, Byte> newFrame = new Image<Bgra, Byte>(frame.Bitmap); 
imageCamera.Image = newFrame; 

Я вошел в этот http://uname:[email protected]/axis-cgi/mjpg/video.cgi в браузере и видеопоток есть.

Я видел, что видел this, но имя типа cvCreateFileCapture не существует на cvInvoke в Emgu 3.0, есть ли способ захватить видео с ip?

Пробный ввод http://uname:[email protected]/axis-cgi/mjpg/video.cgi в VLC -> Медиа -> Сетевой поток, он отлично работает. Но почему я не вижу этого в своем захвате?

ответ

0

Извлечь() требуется сначала использовать Grab(). Вы также можете попробовать использовать QueryFrame(), если вам просто нужно одно изображение.

var image = _capture.QueryFrame(); 
+0

Я могу правильно использовать Retrieve() с видео из файла. Проблема заключается в настройке захвата с подачи IP-камеры. Не получить изображение – Untitled

+1

@ Возможно, что Opencv не понимает ссылку .cgi. Глядя на этот [post] (http://answers.opencv.org/question/17210/d-link-ip-cam-read-stream-and-picture/), попробуйте добавить? X.mjpeg к URL-адресу после. cgi –

+0

@ AndersJørgensen добавляет, что «? x.mjpeg» работал. Благодарю. –