Digital Signage Kiosk With Video

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

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: