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 –
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 –
Better instructions –!topic/concerto-digital-signage/NJbhl0CwshQ


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 (
  • changing a screen’s size or template will disassociate everything

the URL for viewing a screen is assuming 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.

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.

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


#start video
"bash /opt/"

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


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=


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

 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>