Reproducir videos como salvapantallas en Gnome con Debian Squeeze | Algo de Linux

viernes, 22 de junio de 2012

Reproducir videos como salvapantallas en Gnome con Debian Squeeze

Últimamente, a ratos, he estado probando sistemas gestores de pantallas informativas. ¿Y eso qué es? Bueno, básicamente son aplicaciones que de un modo u otro nos permiten mostrar una serie de noticias breves de forma rotativa e ininterrumpida en pantallas de TV. Ésto se utiliza, por ejemplo, en universidades, puntos de información turística, etc...

Uno de los proyectos que he probado (Oculus) genera un video mpg que se transmite a una serie de equipos básicos que lo muestran de forma continua. Al principio no me gustaba mucho la idea de que fuera un vídeo, pero luego pensé que podía ser interesante y resultarme verdaderamente útil.

Bueno, pues ahora que disponía de un servidor de gestión de pantallas informativas, me planteé cómo reproducir el vídeo en los clientes de forma ininterrumpida con mplayer desde la línea de comandos. Una vez conseguido, ya tenía completo el sistema, pero se me ocurrió añadir algo más para completar el puzzle.

Aparte de reproducir el vídeo en una pantalla dedicada, pensé que sería interesante mostrar las noticias como salvapantallas en ciertos equipos. Vamos a ver cómo podemos conseguir ésto.

Antes de nada, decir que para lograrlo utilicé información de las siguientes fuentes:
Primero.- Instalamos mplayer, si no lo tenemos instalado aún:

# apt-get install mplayer

Segundo.- Copiamos el script movie.sh de http://duck-wrath.blogspot.com.es que permite reproducir los vídeos de una carpeta, controlando el cierre de procesos de mplayer, algo que me pareció importante:

#! /bin/bash 
# Movie screensaver code based on 
# http://ubuntuforums.org/showthread.php?t=1368224 
# modified January 2012 
# /usr/lib/gnome-screensaver/gnome-screensaver/movie.sh
## path to video 

### USER MODIFY ##### 
# Modify this to add the directories with the videos you want 

# played. 
 

VIDEO=( "/usr/share/salvapantallas/*" ) 

##################### 
 

if [ ! -z $XSCREENSAVER_WINDOW ]; then 
# allow this script to run as a standalone without gnome-screensaver 
      WINDOW="-wid $XSCREENSAVER_WINDOW" 
fi 

## setup MPlayer aruments, remove -nosound if you want the video 
## to play sound. If you have to specify the video driver to use 
## then add that to the list 
 

MPLAYERARGS="-nosound -nolirc $WINDOW -nostop-xscreensaver -fs -really-quiet -shuffle" 

## we handle SIGTERM and SIGINT here to kill the child 
## if active then quit. 
function ex { 
  pkill -TERM -P $CPID mplayer 
  kill -s 9 $CPID 
  exit 0 


trap ex SIGINT SIGTERM 

mplayer $MPLAYERARGS -loop 0 ${VIDEO[*]} < /dev/null & 

CPID=$! 
wait $CPID


En este script tan sólo tenemos que modificar la variable VIDEO con la ruta donde almacenemos nuestros videos.

Tercero.- Creamos un fichero /usr/share/applications/screensavers/movie.desktop con el siguiente contenido:

[Desktop Entry]
Name=Movie
Exec=/usr/lib/gnome-screensaver/gnome-screensaver/movie.sh
TryExec=/usr/lib/gnome-screensaver/gnome-screensaver/movie.sh
Comment=Plays Videos
StartupNotify=false
Terminal=false
Type=Application
Categories=GNOME;Screensaver;
OnlyShowIn=GNOME;

Este fichero nos va a servir para que a la hora de elegir salvapantallas se nos muestre una opción más (movie.sh) que nos va a permitir reproducir los vídeos del directorio /usr/share/salvapantallas/.

Y listo. Si ahora abrimos el menú de gnome y hacemos clic en  Sistema -> Preferencias -> Salvapantallas, podremos elegir movie.sh para que se reproduzcan de forma continua los vídeos.

1 comentario:

Carlos dijo...

Gracias por el tutorial.. voy a probarlo a ver si me funciona