MOBOTIX – Cambiar la resolución de la grabación cuando ocurre un evento

Hoy volvemos a la carga con un manual en el que vamos a explicar cómo cambiar la resolución de la grabación cuando ocurra algo en el escenario que cubre la cámara.

Los que conocéis MOBOTIX ya sabréis que las cámaras pueden grabar por eventos, es decir, en lugar de grabar todo el rato, podemos grabar sólo cuando esté ocurriendo algo interesante en nuestro escenario (detección de movimiento en vídeo, análisis MxActivitySensor, botón de pánico pulsado, sensor infrarrojo activado…). Hay ocasiones en las que, aunque esto sería lo más lógico desde cualquier punto de vista, los requisitos del cliente son de grabación continua por pura política de seguridad de la empresa, pero es un desperdicio de espacio de almacenamiento y podría encarecer la solución en cuanto al dimensionamiento del NAS o la tarjeta uSD que propongamos.

Existe una manera de hacer que nuestras cámaras graben en alta resolución cuando algo ocurra y que el resto del tiempo estén grabando en otra resolución, mucho más baja, y a menos frames por segundo. Los propios menús de la cámara nos permitirán configurarla de tal manera que suban los frames por segundo, pero no hay una opción para hacer el cambio de resolución.

¿Y entonces? ¿Qué hacemos? ¿Acaso os he engañado para que os leáis esta entrada y no se puede? Tranquilos, tranquilos, que todo es verdad: Hay algo muy importante en las cámaras MOBOTIX que se pasa por encima a la hora de mirar sus especificaciones, y es que la cámara puede recibir comandos CGI a través de los cuales podemos hacer que la cámara realice acciones o se reconfigure a sí misma; así que vamos a hacer uso de las posibilidades que esto nos abre para «programar» la cámara para que se reconfigure a sí misma.

En el ejemplo que vamos a utilizar, grabaremos de manera continua en resolución PDA (y 4 frames por segundo) y cuando tengamos un evento de detección de movimiento en vídeo gracias al análisis MxActivitySensor incorporado en la cámara, pasaremos a resolución QXGA (y máximos FPS) durante 30 segundos (si volvemos a tener una detección durante esos 30, se reiniciará la cuenta). Una vez concluya la actividad, volveremos a PDA. Allá vamos.

  1. Configuramos la cámara para grabar continuamente:
    1. Accedemos a la interfaz web de la cámara, Setup Menu => Recording
    2. Armamos la grabación: Arming => Enabled
    3. En Recording (REC) elegimos Continuous Recording
    4. En Continuous Recording Frame Rate elegimos 4 fps
    5. En mi caso voy a grabar también el audio, así que elijo Include audio en Record Audio Data
    6. Ahora en Start Recording, elegiremos el evento o eventos que iniciarán nuestra fase de máximos frames por segundo, en nuestro caso el evento Image Analysis: AS
    7. Ponemos el Event Frame Rate en Max fps
    8. Elegimos la duración de nuestro evento, en Recording Time, 30 s
    9. En Retrigger Recording definiremos los eventos que pueden reiniciar la cuenta de los 30s, en nuestro caso el mismo Image Analysis: AS
    10. En Stop Recording no seleccionamos ninguno. Aquí podríamos seleccionar algún evento que parara la grabación, por ejemplo, una puerta de emergencia que se cierra.
    11. Full Image Recording lo dejaremos en Off, ya que posteriormente vamos a jugar con la resolución de visualización para grabar lo mismo que vemos.

      Así me ha quedado la configuración de Recording

      Así me ha quedado la configuración de Recording

  2. Ahora que hemos fijado el tema de los frames por segundo, vamos a hacer que la cámara cambie su resolución utilizando comandos de la API que la cámara lanzará contra sí misma. Vamos a Admin Menu => IP Notify Profiles para crear esas auto-notificaciones IP:
    1. Hacemos click en Add new profile para crear una nueva notificación IP
    2. Le doy un nombre significativo, en este caso, Full-QXGA, para el modo en alta resolución
    3. Dejamos el tipo de notificación como Custom Configuration
    4. En Destination Address usamos localhost:80
    5. Data Protocol: HTTP/1.0 Request
    6. CGI-Path: /control/control
    7. En HTTP Authentication usaremos usuario:contraseña de la cámara. Si fueran los de la cámara por defecto usaríamos admin:meinsm
    8. Data Type: Plain text
    9. En Message insertaremos el comando a utilizar para que la cámara cambie a QXGA: set&section=imagecontrol&framerate100=400&size=2048x1536&display_mode=simple&textdisplay=disable
    10. En Send port dejamos 0
    11. Hacemos click en Set

      Así queda la configuración del perfil Full-QXGA

      Así queda la configuración del perfil Full-QXGA

    12. Hacemos click en Add new profile para crear una nueva notificación IP
    13. Le doy un nombre significativo, en este caso, Full-240×180, para el modo en baja resolución
    14. Dejamos el tipo de notificación como Custom Configuration
    15. En Destination Address usamos localhost:80
    16. Data Protocol: HTTP/1.0 Request
    17. CGI-Path: /control/control
    18. En HTTP Authentication usaremos usuario:contraseña de la cámara. Si fueran los de la cámara por defecto usaríamos admin:meinsm
    19. Data Type: Plain text
    20. En Message insertaremos el comando a utilizar para que la cámara cambie a PDA: set&section=imagecontrol&framerate100=400&size=customize&customsize=240x180&display_mode=simple&textdisplay=disable
    21. En Send port dejamos 0
    22. Hacemos click en Set, Close y Aceptamos

      Así queda la notificación IP para baja resolución

      Así queda la notificación IP para baja resolución

  3. Ahora que ya tenemos los comandos para cambiar la resolución a QXGA y a PDA (podemos comprobar su correcto funcionamiento en Admin Menu => Test Current Network Configuration igual que comprobábamos los perfiles FTP en este artículo), vamos a decirle a la cámara cuándo tiene que lanzarlos:
    1. Nos vamos a Setup Menu => Event Overview
    2. Buscamos Internal Events y hacemos click en su botón Edit…
    3. Hacemos click Add new profile
    4. Le damos un nombre significativo, en mi caso le he puesto Final_Evento
    5. Seleccionamos el Event Sensor Type => Recording
    6. El Recording Trigger lo fijamos en Recording is stopped
    7. Hacemos Set, Close y Aceptamos

      Evento de Final de Grabación

      Evento de Final de Grabación

    8. Nos vamos a Setup Menu => Action Group Overview
    9. Hacemos click en Add new group y le damos un nombre significativo, en nuestro caso Full_QXGA
    10. Hacemos click en el botón Edit… de su derecha
    11. En Event Selection elegimos el mismo evento que inicia la grabación al máximo de FPS, en nuestro caso, Image Analysis: AS
    12. El Action Deadtime lo dejamos en 5 segundos
    13. El Action Chaining lo dejamos Simultaneously (sólo vamos a tener una acción)
    14. En la sección de Actions, vamos a añadir una haciendo click en Add new action
    15. Elegimos la que creamos anteriormente: IP Notify: Full-QXGA
    16. Hacemos click en Set, Close y Aceptamos

      Acción Full_QXGA

      Acción Full_QXGA

    17. Volvemos a Setup Menu => Action Group Overview
    18. Hacemos click en Add new group y le damos un nombre significativo, en nuestro caso Full_PDA
    19. Hacemos click en el botón Edit… de su derecha
    20. En Event Selection elegimos el evento que señala el final de la grabación, en nuestro caso, Internal: Final_Evento
    21. El Action Deadtime lo dejamos en 5 segundos
    22. El Action Chaining lo dejamos Simultaneously (sólo vamos a tener una acción)
    23. En la sección de Actions, vamos a añadir una haciendo click en Add new action
    24. Elegimos la que creamos anteriormente: IP Notify: Full-240×180
    25. Hacemos click en Set, Close y Aceptamos

      Acción Full-PDA

      Acción Full-PDA

  4. Si todo está bien configurado, nuestra cámara estará a resolución PDA siempre, excepto cuando detecte movimiento por el MxActivitySensor, que cambiará a QXGA, y cuando acabe la actividad (pasados 30 segundos desde el último movimiento), volverá a PDA.
Cámara en baja resolución

Cámara en baja resolución

Cámara en alta resolución

Cámara en alta resolución

También te podría gustar...

2 Respuestas

  1. Miguel dice:

    Lo veo evidente, a la par que sencillo, pero tengo una cuestión: si el evento es, por ejemplo, que pasa un coche por una carretera, tendremos su paso a Max frame rate y resolución, si el coche esta apenas unas décimas de seg. En la escena? Tendremos siempre el evento completo a max FR Y RES?

    • Oderfla dice:

      Ahí has dado en el clavo, porque el cambio de resolución toma unas décimas de segundo, por lo que si esperamos que en nuestro escenario los lapsos de tiempo en los que vamos a tener a nuestro objetivo encuadrado van a ser muy cortos, esta técnica no sería la mejor posible. En ese caso o bien hacemos grabación continua a la resolución mínima necesaria para cumplir las exigencias de identificación; o bien hacemos grabación por eventos estableciendo un pre-bufer para no perdernos nada del evento.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: