Nov 112012
 

I was lookin to set up some digital signage, nothing too fancy, basically a scaled up digital picture frame with a few extra features. It’s also important that it works well stand-alone.

This is what I came up with

There are more options than I expected but two really stood out to me, xibo and concerto. Both are built with php/mysql.

My first attempt was xibo on ubuntu 12.04, which only ended in tears. I tried again with 10.04 and had some success. The client (display) is written with python for linux, .NET for windows. I got everything set up and running, but not running well. I want it to play a video that’s just over 5 minutes in length. The .NET client hangs at the end of the video and doesn’t progress to the next slide. I was unable to get the python client to play video well at all.

Moving on.

I eventually found a simplified install guide for concerto. It isn’t very complicated at all, but the instructions could have been better.

Concerto Overview – http://www.concerto-signage.org/deploy
One thing I like about Concerto is the flexibility. It’s very simple to have it geographically distributed over the internet or a VPN or WAN, or across multiple buildings at a single site, or limited to a single stand-alone machine that’s both server and client.

I wanted the frontend and backend to be the same machine, so I installed the backend and used chromium in app mode for the display.

Official instructions – http://www.concerto-signage.org/help_pages/30
Better instructions – https://groups.google.com/forum/?fromgroups=#!topic/concerto-digital-signage/NJbhl0CwshQ

Advertisement:

A few things to note about concerto.

  • the screens (displays) are identified by MAC address
  • you have to import templates before you can create a screen (http://www.concerto-signage.org/help_pages/38)
  • changing a screen’s size or template will disassociate everything

the URL for viewing a screen is http://127.0.0.1/?mac=00:00:DE:AD:BE:EF assuming 127.0.0.1 is the concerto server’s IP address and 00:00:DE:AD:BE:EF is the MAC address you entered for the screen

I found an excellent guide for building a browser kiosk. Arch linux wiki has an interesting page too.
http://www.alandmoore.com/blog/2011/11/05/creating-a-kiosk-with-linux-and-x11-2011-edition/
https://wiki.archlinux.org/index.php/Creating_a_Web_Kiosk

I also wanted to be able to trigger a video to play on demand. I was able to get xbindkeys to run a script. arch linux has an excellent guide for xbindkeys.
https://wiki.archlinux.org/index.php/Xbindkeys

I was able to get mplayer to play full screen
mplayer -vo xv -fs -stop-xscreensaver -zoom /opt/test.mpg

.xbindkeysrc

#start video
"bash /opt/launchvid.sh"
    grave

#kill session
"kill `ps aux | grep .xsession | grep -v dbus | grep -v grep | awk '{print $2}'`"
    control + 0

.xsession

xset s off
xset -dpms
matchbox-window-manager -use_titlebar no &
/usr/bin/xbindkeys &
while true; do
    rsync -qr --delete --exclude='.Xauthority' /opt/kiosk/ $HOME/
    chromium-browser --app=http://127.0.0.1/screen/?mac=00:00:DE:AD:BE:EF
done

launchvid.sh

#!/bin/sh

if ps ax | grep -v grep | grep mplayer > /dev/null
then
        killall mplayer
else
        mplayer -vo xv -fs -stop-xscreensaver -zoom /opt/test.mpg
fi

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)