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 – 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

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
[bash]
#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
[/bash]

.xsession
[bash]
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
[/bash]

launchvid.sh
[bash]
#!/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
[/bash]

Leave a Reply

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

WordPress.com Logo

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

Google photo

You are commenting using your Google 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: