Este sitio utiliza cookies de Google para prestar sus servicios y analizar su tráfico. Tu dirección IP y user-agent se comparten con Google, junto con las métricas de rendimiento y de seguridad, para garantizar la calidad del servicio, generar estadísticas de uso y detectar y solucionar abusos.Más información

View site in english Ir a la página de inicio Contacta conmigo
domingo, 3 de julio de 2016

Cámaras IP Axis con protocolo VAPIX

Axis es una marca sueca, uno de los líderes mundiales en el mercado de cámaras IP para video vigilancia, que cuenta con un extenso catálogo de modelos de cámara que permiten cubrir prácticamente cualquier necesidad. Todos sus productos cuentan con un protocolo de acceso común vía http, el protocolo VAPIX, basado en comandos CGI, lo que hace especialmente interesante conocerlo.

El protocolo VAPIX es bastante extenso, por lo que no puedo cubrirlo por entero en este blog. En cualquier caso, toda la documentación necesaria se encuentra disponible en el centro de soporte para desarrolladores de la web de Axis, así como software básico gratuito para comenzar a utilizar sus productos desde el primer momento.

En este artículo voy a hacer una revisión del manejo básico de este tipo de cámaras, su configuración y la utilización de diferentes comandos para gestionarlas desde una aplicación. Como ejemplo, utilizaré un proyecto escrito en lenguaje CSharp con Visual Studio 2013. En este enlace os podéis descargar el código fuente del proyecto IPCameraDemo, junto con el ejecutable del programa.

Este programa funciona con cámaras que tengan implementada la versión 3 del API HTTP de VAPIX, que es la versión actual en este momento.

Parámetros de la cámara

Las cámaras Axis tienen gran cantidad de parámetros, con los que se puede configurar la red, activar o desactivar funciones de la cámara, formatos de video, etc. Todos ellos se gestionan mediante param.cgi y están organizados en una estructura de árbol dividida en varios grupos y subgrupos.

No puedo hacer un examen exhaustivo de todos ellos, pero se pueden examinar y modificar utilizando el programa que acompaña a este artículo, usando la documentación del fabricante como guía de referencia. Para empezar, selecciona la cámara Axis y pulsa el botón Play (hay que esperar unos segundos hasta que se cargan todos los parámetros, paciencia):

Selecciona la cámara IP de Axis
Selecciona la cámara IP de Axis

Los parámetros aparecen en un cuadro de diálogo no modal, por lo que puedes modificar sus valores y comprobar el resultado inmediatamente, con la imagen de la cámara que aparece en la ventana principal.

Parámetrosa de la cámara IP de Axis
Parámetros de la cámara

Si el parámetro seleccionado no es de solo lectura, en la parte inferior aparecerán los controles apropiados para modificar su valor, al pulsar el botón Save.

El comando para listar todos los parámetros es el siguiente (como los comandos son largos, omitiré http://<servidor> al inicio):

/axis-cgi/param.cgi?action=list

Si quieres cargar solo una rama del árbol, o un solo parámetro (por ejemplo, Properties.Image.Format), hay que añadir:

/axis-cgi/param.cgi?action=list&group=Properties.Image.Format

Esto devuelve una serie de líneas con los nombres de los parámetros y sus valores separados por un signo =.

También se puede obtener una descripción completa de los parámetros, su tipo y sus posibles valores en formato XML usando el siguiente comando:

/axis-cgi/param.cgi?action=listdefinitions&listformat=xmlschema

Y para modificar el valor de un parámetro, el comando es el siguiente:

/axis-cgi/param.cgi?action=update&PTZ.ImageSource.I0.PTZEnabled=yes

Dependiendo de las prestaciones de la cámara, no todos los parámetros tendrán efecto. Puedes encontrar parámetros interesantes en el grupo ImageSource.Sensor, para controlar el color, el contraste y el brillo, por ejemplo, y en el grupo Image.I0.Appearance, para la resolución o la rotación de la imagen.

Control de la cámara con los comandos PTZ

Aunque el API de VAPIX es más extenso, en este artículo solo voy a comentar la gestión de parámetros y los comandos PTZ de control de la cámara, que son las siglas de Pan (movimiento horizontal), Tilt (movimiento vertical) y Zoom.

Antes de utilizar el PTZ, hay que asegurarse de que esté activo y desbloqueado, mediante los siguientes parámetros:

/axis-cgi/param.cgi?action=update&PTZ.ImageSource.I0.PTZEnabled=yes
&PTZ.Various.V1.Locked=false

Una vez hecho esto, se pueden obtener los comandos disponibles mediante el CGI ptz.cgi, usando el comando info de la siguiente manera. El número de comandos dependerá del modelo de cámara:

/axis-cgi/com/ptz.cgi?info=1

En el programa puedes utilizar la pestaña PTZ para dar valores a los comandos y ejecutarlos:

Comandos PTZ de control de la cámara
Comandos PTZ

En la documentación del fabricante encontraréis la descripción de cada uno de estos comandos. No es necesario que la cámara esté motorizada para utilizar los comandos de movimiento, ya que las cámaras fijas también pueden desplazar el centro de la imagen, siempre que los comandos correspondientes estén disponibles.

Por ejemplo, para aumentar el zoom de la imagen, se utiliza el comando:

/axis-cgi/com/ptz.cgi?zoom=1000

O también el comando para aumentar el zoom de manera relativa al actual:

/axis-cgi/com/ptz.cgi?rzoom=100

Obtener imágenes desde la cámara

Podemos obtener imágenes de la cámara en formato Bitmap o jpeg, o bien un stream de video mjpeg. Los formatos disponibles se pueden obtener en el parámetro Properties.Image.Format.

Para descargar una instantánea en formato bmp, utilizaremos:

/axis-cgi/bitmap/image.bmp

Y para una en formato jpg, el siguiente comando CGI:

/axis-cgi/jpg/image.cgi

Y eso es todo, lo mejor es experimentar usando el programa, o modificarlo para añadirle nuevas funcionalidades, ya que, como digo, el API VAPIX ofrece muchas más posibilidades, como la administración de usuarios y permisos, la configuración de la red, detección de movimiento, o el acceso remoto a las cámaras.

Comparte este artículo: Compartir en Twitter Compártelo en Facebook Compartir en Google Plus Compartir en LinkedIn
Comentarios (0):
* (Su comentario será publicado después de la revisión)

E-Mail


Nombre


Web


Mensaje


CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code