Circuito Cerrado de TV Shinobi (CCTV): Creando un Sistema de Vídeo Vigilancia Usando el ODROID-HC2

Shinobi CCTV Video Monitoring with ODROID-HC2

Es un placer para mí compartir mi experiencia sobre cómo montar un sistema CCTV doméstico utilizando el software Shinobi CCTV y el ODROID-HC2. Con algo de suerte, espero ayudar a alguien que esté pensando hacer los mismo.

Figure 1 - Shinobi CCTV Dashboard
Figura 1 – Panel de instrumentos del Shinobi CCTV

En mi opinión, los tradicionales sistemas de alarma para el hogar generalmente causan molestias a los vecinos, y deben estar activados para ser efectivos. En comparación, un sistema de circuito cerrado de televisión (CCTV) es silencioso y también proporciona registros, bajo mi experiencia es un elemento disuasorio más eficaz para los posibles delincuentes. Un buen sistema de CCTV graba las 24 horas del día, los 7 días de la semana y avisa en caso de detectar movimiento.

Otros beneficios de un sistema de CCTV pasar por su utilidad para indicarte cuándo te han dejado un paquete en la puerta de entrada de casa; saber quién está en la puerta; o vigilar la barbacoa situada en la terraza mientras juegas a tus videojuegos dentro.

Advertencias y Descargo de Responsabilidad

Con el fin de respectar la privacidad de los demás, instala las cámaras únicamente con vistas a tu propiedad, y no a la de los vecinos. También es aconsejable que revises tu normativa local con el objeto de cubrir cualquier requisito adicional en relación a la señalización, las restricciones en la grabación de audio y demás. Aunque solo recomiendo instalar las cámaras en el exterior, una posible excepción podría ser usar una cámara en el interior en forma de monitor para bebés. Por otro lado, tal y como me comentó uno de mis amigos, ¡Es muy importante asegurarse de que el acceso/seguridad a estas cámaras sea totalmente hermético!

Fundamentos del sistema

El cableado estructurado en forma de cable CAT6 o superior proporcionará comunicaciones robustas y seguras para tu sistema CCTV. Yo instalé 20 tomas Ethernet en mi casa, ocho en el techo para conectar las cámaras. El cableado normalmente es algo que instala un electricista, pero con paciencia y algo de investigación puedes hacerlo tú mismo. Tienes numerosos recursos online disponibles para indagar en este tema.

Figure 2 - Structured Cabling
Figura 2 - Cableado estructurado

Las cámaras son de dos tipos: analógicas o digitales. Las cámaras analógicas necesitan más hardware para operar en un sistema en red. Prefiero las cámaras digitales puesto que se conectan a través de ethernet, ofrecen una configuración más flexible y por lo general cuestan lo mismo o quizás menos. Yo elegí cámaras que se alimentan a través del Ethernet (PoE) lo cual significa que puedo proporcionar energía y comunicaciones a través de CAT6. El estándar abierto para las cámaras de red es ONVIF (https://www.onvif.org). Recomiendo usar cámaras compatibles con ONVIF, como la Foscam FI9853EP, con el fin de mitigar los problemas de compatibilidad.

Figure 3 - Example Camera Install
Figura 3 - Ejemplo de una cámara instalada

Configuración del ODROID-HC2

El ODROID-HC2 es perfecto para mi sistema CCTV. Ofrece velocidad de red gigabit, una interfaz SATA nativa HDD/SDD de 3.5 "o 2.5" y sin pitidos o sirenas innecesarios. Quiero almacenar imágenes durante al menos 30 días utilizando como medio de almacenamiento discos duros de baje coste.

Arranque el ODROID-HC2 utilizando la última Imagen SO Ubuntu minimal para ODROID-XU4. Grabé la imagen en una microSD usando WinDiskImager, luego la inserté en el ODROID junto con una conexión de Ethernet y un disco duro de 3.5 ". Encendí el sistema usando una fuente de alimentación de 12 voltios compatible. El ODROID necesitó unos 2 minutos para iniciarse y en el siguiente arranque se activó el acceso SSH a través de una IP asignada por DHCP.

Aplicamos las actualizaciones disponibles:

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
Montamos el disco duro. El disco duro debe aparecer como /dev/sda, aunque ejecuté el siguiente comando para comprobarlo:
$ sudo fdisk -l
En el siguiente paso asumimos que el disco duro se muestra como /dev/sda. Creamos una única partición utilizando fdisk. Recurre a la documentación de fdisk para particionar el disco.
$ sudo fdisk /dev/sda
Una vez que tengas una partición creada, formatéala:
$ sudo mkfs.ext4 /dev/sda
El ODROID-HC2 solo tiene espacio para un único disco duro. Como tal, simplemente monté la referencia de disco /dev/sda. Si lo prefieres, puedes montarlo usando el UUID. Añade la siguiente línea a fstab:
$ sudo nano /etc/fstab
/dev/sda /media/CCTV ext4 defaults 0 2
El siguiente script nos ayuda a detener el disco duro cuando apagamos el sistema. Descarga e instala el script:
$ wget https://dn.ODROID.com/5422/script/ODROID.shutdown
$ sudo install -o root -g root -m 0755 ./ODROID.shutdown /lib/systemd/system-shutdown/ODROID.shutdown
Decidí Compartir todo el disco duro usando Samba. Esto me permitía recuperar las grabaciones y enviarlas a un recurso compartido en red.
$ sudo apt-get install samba samba-common-bin
Luego, configuré Samba:
$ sudo nano /etc/samba/smb.conf

#===== Share Definitions =====
[CCTV]
comment = CCTV
path = /media/CCTV/
browsable = yes
writable = yes
guest ok = yes
read only = no
Reinicie el dispositivo y me aseguré de que se pudiera leer/escribir en el disco duro.

Configuración de Shinobi

Utiliza el script de instalación para instalar Shinobi CCTV y los correspondientes requisitos previos:

$ sudo apt-get install curl

$ bash <(curl -s https://raw.githubusercontent.com/ShinobiCCTV/Shinobi-Installer/master/shinobi-install.sh)
Instala todas las dependencias. Yo elegí la rama Shinobi Pro con las restantes opciones por defecto. Accede a la vista de administrador de Shinobi colocando el enlace: https://[ip-ODROID-HC2]:8080/super en tu navegador.

A continuación, agrega una nueva cuenta, añade el disco duro a la configuración y guarda los cambios:

"addStorage": [
 {
 "name": "second",
 "path": "/media/sda/CCTV"
 }
Es posible que también quieras cambiar la configuración del correo electrónico, las cables API y la contraseña del superusuario Shinobi.

Ahora conéctate a la interfaz principal de CCTV Shinobi con tu navegador en https://[ip-tu-ODROID]:8080 usando la nueva cuenta. Haz clic en el símbolo más [+] con la herramienta 'Add Monitor'. Configura tu cámara de la siguiente forma (tu configuración ideal puede variar):

Identity
Mode: Record
Monitor ID: (leave default)
Name: (i.e. Front Door)
Retry Connection: 0
Storage Location: second

Input
Input Type: H264 (or that supported by your camera)
Connection Type: RSTP
RTSP Transport: UDP
Username: (Camera login)
Password: (Camera password)
Host: (Camera IP)
Port: (Camera RTSP Port)
Force Port: No
Path: (RSTP Path)
Analyzation Duration: 100000
Probe Size: 100000
Accelerator: No

Stream
Stream Type: FLV
FLV Stream Type: Websocket
Max Latency: 20000
Video Encoder: Copy
Audio Encoder: No Audio
TV Channel: No

Stream Timestamp
Enabled: No

Stream Watermark
Enabled: No

JPEG API Snapshot (cgi-bin)
Enabled: No

Recording
Record File Type: MP4
Video Codec: Copy
Audio Codec: No Audio
Double Quote Directory: No
Recording Segment Interval: 15

Custom
(leave blank)

Logging
Log Level: (set to silent once camera is stable)
Save Log in SQL: No
Tendrás que revisar el manual de configuración de la cámara para determinar las opciones. La API JPEG debería funcionar en la mayoría de las cámaras, pero desafortunadamente no en la mía. Yo prefiero el protocolo UDP para las transmisiones de la cámara. Si tienes pensado transmitir a través de Internet o redireccionar a través de una LAN concurrida, selecciona el protocolo TCP. Se supone que el protocolo HTTP Live Streaming (HLS) es superior a la transmisión Flash Video (FLV), pero he tenido problemas para visualizarlo correctamente.

Existen muchas más personalizaciones para Shinobi. Puedes configurar un detector de movimiento, alertas de correo electrónico y programar clientes, por nombrar algunos. Encontré muy útiles las siguientes páginas sobre Shinobi:

https://goo.gl/47M2Ty https://shinobi.video/docs/cameras https://goo.gl/kvKax1

Necesitaras configurar la redirección de puertos u usar otros métodos para ver Shinobi a través de Internet. Podrás ver todas las transmisiones sin dificultad desde la casa de un amigo. Sin embargo, la visualización de las transmisiones en tiempo real desde un teléfono móvil parece dar problemas, aunque la reproducción de las grabaciones es perfecta. Espero que la visualización a través del teléfono móvil mejore con futuras actualizaciones o adaptaciones.

Figure 4 - Shinobi CCTV Power Viewer
Figura 4 – Potente Visor del CCTV Shinobi

Estoy capturando y grabando imágenes con 6 cámaras a 720p 2M 15 fps. El consumo de la CPU de mi ODROID-HC2 está entre el 1% a 5% y la memoria a un 36%. Hasta ahora, el sistema se ha mantenido estable durante 2 semanas sin signos de degradación. No se bloquea ni se reinicia, ni muestra ningún otro comportamiento anormal. Durante varios días realice pruebas hasta lograr que el sistema funcionase tal y como deseaba.

Para comentarios, preguntas y sugerencias, visita el artículo original en https://goo.gl/tJprLA.

Be the first to comment

Leave a Reply