Visual Basic.NET - Accesar imagenes de Camara IP en VB.NET

   
Vista:

Accesar imagenes de Camara IP en VB.NET

Publicado por juan luis (23 intervenciones) el 07/05/2016 00:10:56
Estoy desarrollando una aplicación en Vb.Net y una de sus funciones es el control de accesos a través de reconocimiento facial. Para esto se considera instalar una cámara IP en el acceso y a través de la aplicación comparar la imagen contra las registradas en la base de datos. ¿Podrían explicarme de que forma se realiza esta conexión y como se enlaza la cámara con la aplicación?. Todo lo que he visto hasta ahora se refiere a cámaras web, ¿que hay de diferente entre una y otra?. Agradezco de antemano la colaboración que me puedan brindar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Accesar imagenes de Camara IP en VB.NET

Publicado por Miguel (354 intervenciones) el 07/05/2016 02:09:38
Hola, utiliza AForge.NET (https://code.google.com/archive/p/aforge/) para conectar con las cámaras IP. En la descarga de la biblioteca/librería se incluyen ejemplos, específicamente en "Samples\Video\Player" para cámaras IP.

Si utilizas el control de AForge ( AForge.Controls.VideoSourcePlayer) puedes utilizar el siguiente código:

1
2
3
MJPEGStream videoSource = new MJPEGStream("http://admin:admin@192.168.1.227:81/videostream.cgi?rate=11")
VideoSourcePlayer1.VideoSource = videoSource
videoSource.Start()


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Accesar imagenes de Camara IP en VB.NET

Publicado por juan luis jlsolers@gmail.com (23 intervenciones) el 08/05/2016 02:14:18
Estimado Miguel:

Lo que tu me indicas, lo tenia hecho pero no me explico porque no aparece ninguna imagen en el videosourceplayer. Rehíce las instrucciones por si tenia algo mal escrito pero no se arregla.

Las instrucciones son:

Dim Stream As MJPEGStream = New MJPEGStream("http://admin:admin@192.168.0.45:81/videostream.cgi?rate=11")
vspImagenes.VideoSource = Stream
vspImagenes.Start()

Te adjunto una imagen de la configuración de red. Veo las imágenes a través del navegador. A la cámara le puse una IP fija.
Tal como indico en la imagen adjunta, si al String de conexión le pongo el puerto 80, que es el que indica la configuración de la red, me retorna el mensaje: Error en el servidor remoto: (401) no autorizado.
Si pongo el puerto 81, me retorna el mensaje: No es posible conectar con el servidor remoto.

¿Qué me esta faltando?....

Agradezco de antemano tu colaboración.

Saludos

Juan Luis Soler
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Accesar imagenes de Camara IP en VB.NET

Publicado por Miguel (354 intervenciones) el 08/05/2016 03:06:20
Estimado Juan Luis,

Bien, inicialmente te comento que la cadena de conexión que he colocado es a modo de ejemplo; dependiendo de la marca/modelo de la cámara se tiene que asignar esto.

Puedes intentar con estas otras formas:

1
2
3
4
5
Dim Stream As MJPEGStream = New MJPEGStream("http://192.168.0.45/axis-cgi/mjpg/video.cgi") '' cadena de ejemplo
Stream.RequestTimeout = 5000 '' 5 segundos de espera
Stream.ForceBasicAuthentication = True
vspImagenes.VideoSource = Stream
vspImagenes.Start()

O:

1
2
3
4
5
6
Dim Stream As MJPEGStream = New MJPEGStream("http://192.168.0.45/axis-cgi/mjpg/video.cgi") '' cadena de ejemplo
Stream.RequestTimeout = 5000 '' 5 segundos de espera
Stream.Login= "usuario" '' Creo que así está la propiedad
Stream.Password= "clave" '' Creo que así está la propiedad
vspImagenes.VideoSource = Stream
vspImagenes.Start()


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Accesar imagenes de Camara IP en VB.NET

Publicado por juan luis (23 intervenciones) el 09/05/2016 02:34:00
Miguel:

Agradezco infinitamente tu colaboración. Tengo que decirte con mucha desilusión, que creo haber intentado con todas las cadenas de conexión para la cámara, que encontré en una pagina de la cámara y no hay caso. Utilizando el 1er. grupo de cadenas de conexión que están en el documento adjunto, que corresponde a tu primera indicación, me arrojo el mensaje: error en el servidor remoto: (401) no autorizado. Utilizando el segundo grupo de cadenas de conexión, me arrojo el mensaje: error en el servidor remoto: (404) no se encontró.
Te adjunto un documento Word, comprimido con las instrucciones utilizadas en todos los intentos que realicé.

A todo esto, la cámara es una Wanscam, HW0022 HD Wifi y tiene un id p2p: WXH-014691-CBAEC, no se si esto ultimo te pueda decir algo. La veo perfectamente en el navegador y le hago ping y responde perfectamente.

Ojala me puedas indicar alguna otra cosa para probar, presiento que estoy a punto de lograrlo... pero no pasa na.

Agradezco desde ya lo que puedas indicarme.

Saludos

Juan Luis Soler
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Accesar imagenes de Camara IP en VB.NET

Publicado por Miguel (354 intervenciones) el 09/05/2016 04:40:03
Bien, mira te envío una alternativa:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
'' Utilizamos el espacio de nombres "System.Net" para obtener la captura (utiliza la URL que te sirve actualmente en el navegador) que mostramos en un control "PictureBox".
 
Dim sourceURL As Strimg = "http://ipaddress/jpg/image.jpg"
Dim buffer As Byte() = New Byte(10000000)
Dim read As Integer = 0
Dim total As Integer = 0
'' create HTTP request
Dim req As HttpWebRequest = CType(WebRequest.Create(sourceURL), HttpWebRequest) '' revisa esta línea
req.Credentials = New NetworkCredential("username", "pass") '' para usar autenticación
'' get response
Dim resp WebResponse = req.GetResponse()
'' get response stream
Dim stream Stream = resp.GetResponseStream()
'' read data from stream
Do While read = stream.Read(buffer, total, 1000)) > 0 '' revisa esta línea
	total = total + read
Loop
'' get bitmap
Dim bmp As Bitmap = Bitmap.FromStream(New MemoryStream(buffer, 0, total))
 
pictureBox1.Image = bmp


Bueno, siguiendo con AForge podrías probar cambiando el stream "MJPEGStream" por "JPEGStream"; lo demás iría igual.



Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Accesar imagenes de Camara IP en VB.NET

Publicado por juan luis (23 intervenciones) el 09/05/2016 17:13:18
Miguel:

Armé la rutina que me enviaste, pero me presenta dos errores distintos dependiendo del string de conexión:

con: Dim sourceURL As String = "http://192.168.0.45/web/admin.html", que es el que tiene el navegador para accesar la cámara, me arroja el error en la carga de la variable dim bmp as bitmap=...., ", con (buffer, 0, total), me dice "parámetro invalido"; con (buffer, true, total), me retorna "se necesita un numero no negativo. Nombre del parámetro: index". Lo extraño, y creo que el error se genera por eso, es que la variable total es cero... me imagino que debería ser mayor a cero.
Si dejo la cadena de conexión que venia con tu ejemplo, arroja error en la instrucción dim resp as WebResponse=..... :"Error en el servidor remoto:(404) No se encontró.

Te copio la rutina tal como quedó.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
'Dim sourceURL As String = "http://192.168.0.45/web/admin.html"
Dim sourceURL As String = "http://192.168.0.45/jpg/image.jpg"
 
Dim buffer(10000000) As Byte
Dim read As Integer = 0
Dim total As Integer = 0
 
'' create HTTP request
Dim req As HttpWebRequest = CType(WebRequest.Create(sourceURL), HttpWebRequest) '' revisa esta línea
 
req.Credentials = New NetworkCredential("admin", "admin") '' para usar autenticación
 
'' get response
Dim resp As WebResponse = req.GetResponse()
 
'' get response stream
Dim stream As Stream = resp.GetResponseStream()
 
'' read data from stream
Do While read = stream.Read(buffer, total, 1000) > 0 '' revisa esta línea
	total = total + read
Loop
 
'' get bitmap
Dim bmp As Bitmap = Bitmap.FromStream(New MemoryStream(buffer, 0, total))
 
pbImagenes.Image = bmp

Parece ser que ahora estamos mas cerca. Espero que me puedas dar alguna otra idea.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Accesar imagenes de Camara IP en VB.NET

Publicado por Miguel (354 intervenciones) el 09/05/2016 18:17:06
Intenta obtener la ruta de la captura con "Inspeccionar elemento" en el visor desde el navegador web (en http://192.168.0.45/web/admin.html).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Accesar imagenes de Camara IP en VB.NET

Publicado por juan luis (23 intervenciones) el 09/05/2016 19:31:10
No se si te refieres a la imagen que te adjunto en el rar adjunto. No encuentro la opción que me dices en el navegador Internet Explorer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Accesar imagenes de Camara IP en VB.NET

Publicado por Miguel (354 intervenciones) el 09/05/2016 20:06:37
Sería en donde está el "visor" de la cámara. Si tienes Chrome con click derecho sobre el visualizador seleccionas "Inspeccionar" y podrías ver si tiene alguna ruta de origen de las capturas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Accesar imagenes de Camara IP en VB.NET

Publicado por juan luis (23 intervenciones) el 09/05/2016 21:29:50
Ya, con el Chrome, despliego el Inspeccionar, y aparecen una serie de cosas escritas en HTML En la línea superior hay una serie de opciones: Elements, Console, Sources.....en el extremo derecho hay una advertencia de error que al desplegarla dice: Uncaught reference error: DHiMPlayer is not defined. Estuve buscando si aparecía alguna cadena de conexión, pero que se supone que debo hacer?.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Accesar imagenes de Camara IP en VB.NET

Publicado por Miguel (354 intervenciones) el 10/05/2016 01:18:03
En la pestaña "Elements" mira si hay alguna ruta para la captura. Verifica si es un "Reproductor" u otro control el visualizador. En "Sources" puedes ver si se descarga algún recurso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Accesar imagenes de Camara IP en VB.NET

Publicado por juan luis (23 intervenciones) el 10/05/2016 02:46:26
Tamos mal, no encuentro nada que se parezca a una cadena de conexión. Revise en el Explorer y en el Chrome. Que frustrante. He resuelto cualquier cantidad de problemas y esta tontera que por lo demás es súper común, no hay caso que funcione.
Parece ser que el tema llega hasta aquí.
Te agradezco tu buena disposición.

Saludos

Juan Luis Soler
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar