Sistema de señalización en Linux

Antecedentes

En mi lugar de trabajo habí­a un sistema de señalización digital creada por un operador comercial. Ahí­ se mostraban videos, diapositivas y páginas web, y tení­a un atractivo sistema de gestión de contenidos.
Extrañamente, en lugar estar sobre un sistema operativo estable, se utilizaba una versión antigua de Windows – agonizante tambaleante y al borde de ya no tener actualizaciones de seguridad – que agradable.

Un dí­a, un técnico vino a darle mantenimiento y cuando se fué, se apagó, y no lograba reiniciar. Después de leer los registros y en contacto con la empresa, sugirieron enviar de vuelta al técnico con un cargo extra. Siendo  yo un implementador, esto me pareció inaceptable, así­ que empecé a buscar alternativas.

En primer lugar fue Xibo que parecí­a bastante prometedor, pero después de algunos intentos fallidos y leer la documentación, este tení­a que ser ejecutado en Ubuntu 10.04, que de nuevo, era punto de partida bastante antiguo, además de que seria doloroso conseguir las dependencias para una base de Debian (mi opción preferida para la estabilidad). Después de conseguir instalarlo en mi hardware, el video era erratico – demasiados lios para ser de utilidad.

Fui a revisar un par de opciones como el Concerto y algunos otros (no acababan de adaptarse a mis especificaciones).

Entonces pensé: ¿Qué es lo que realmente quiero que este sistema haga? Bueno, lo quiero para mostrar una página web durante unos 30 segundos y, a continuación, reproducir una carpeta de medios y quiero ser capaz de correr en un hardware bastante bajo de especificaciones. Lo primero que hice fue programar a mi “reporductor” – un script que hace las cosas que quiero:

#!/bin/bash
DISPLAY=:0.0
while true; do
timeout -k 31 30 midori -e Fullscreen -a http://sitioweb/
cvlc --play-and-exit --fullscreen --no-osd --playlist-tree /home/user/player/*
done

La primera lí­nea especifica la pantalla en caso de que quiera iniciarlo desde SSH, seguido de un bucle while true …  para estar repitiendo la secuencia de comandos. Un “Tiempo de espera” es una aplicación útil para ejecutar procesos por un perí­odo determinado de tiempo. Aquí­, es durante 30 segundos, con la opción -k (matar) matando el proceso después de 31 segundos en caso de que no se detenga por cualquier razón. Inicialmente usé Chromium como navegador en modo de quiosco (pantalla completa, sin adornos), pero luego descubrí­ que el navegador Midori era mas ligero y ágil.

VLC es el campeón – eso es un hecho, y aquí­ estoy usando la versión de lí­nea de comandos CVLC. Por defecto,  reproduce videos y lo mas importante, diapositivas / imágenes durante 10 segundos cuando se encuentran en una lista de reproducción, por lo que no se necesita ninguna configuración de mí­ parte (sin embargo, puede cambiar el tiempo de visualización de la imagen en la versión GUI). Las banderas que tengo allí­ son bastante sencillas: –-play-and-exit  es reproducir y salir, –fullscreen muestra los medios en el modo de pantalla completa, –no-osd oculta los nombres de archivo y –playlist-tree permite un modo de lista de reproducción .

Este script funcionó, aunque hubo se veia momentanemente el escritorio entredetener VLC  y Midori, pero resultó esto en una caracteristica. Como mi sistema base era Linux Mint 17 XFCE me puse el panel para ocultar y configurar el fondo de escritorio con nuestra marca corporativa. Hurra! Ahora aparece la marca gráfica ¡y todo parece intencional!

Como la propia caja se instaló en una zona del lobby, establecí­ un autologin a la sesión X y me aseguré de que tení­a openssh-server instalado para fines de acceso. También he instalado un servidor VNC Vino allí­ para que yo pueda verificar lo que estaba funcionando de forma remota.

Adicionalmente instalé Tickr, para mostrar una linea con noticias desde un feed RSS.

sudo apt-get install tickr