Screenly OSE -- Digital Signage for the Raspberry Pi
When we started Skarmverket, a small network of public billboards in Sweden, we evaluated many of the existing solutions on the market. Most of them were clunky and/or expensive. A fair number of them ran on Windows and used Adobe Flash. We ended up writing our own solution and used Asus Eee PCs with Linux.
Then the Raspberry Pi came along. Priced at $35, and equipped with everything needed to power a screen. We were immediatelly sold and knew that this was what we wanted to use moving forward. Since we love Open Source, we've decided to release Screenly for free for anyone to use.
The current version should be consider a beta. While we have been running it in the lab without any issues, there might still be issues that we are unaware of at this point. Yet, we wanted to make Screenly available to the vibrant Rasberry Pi community.
Since Screenly was written for the Raspberry Pi from the ground up, we had to make it as lean as possible.
There are many use cases where Screenly can be used, such as:
- Display BI or server dashboards
- Advertisements (in-store or in store-front)
- Internal information boards
- Fancy photo-frame
A rought video of Screenly in action is available here.
Screenshots and pictures of Screenly are available here.
There is also a fairly active thread about Screenly on the Raspberry Pi forum.
How Screenly works
Once installed, Screenly can view images, videos and websites on the screen. You can configure your own playlist, and set the duration for how long each element should be viewed.
Here's how you add content to your Screenly box:
- Point your browser to the URL displayed on the screen at boot (from a different computer).
- Click 'Add asset.'
- Provide a name of the asset, the URL to the asset, and the asset type and click 'Submit.'
- Click 'Schedule asset.'
- Select the asset you just added in the drop-down, select the time frame you wish to display the asset and the duration (if image or website) and press 'Submit.'
- Repeate for all the assets you want to display.
Note: If you don't have any server where you can make your asset available, you can use public folders in Dropbox.
- A Raspberry Pi (Model B).
- An SD Card (>4GB). Class 10 is highly recommended.
- An HDMI-cable.
- A network connection (with DHCP).
- A keyboard and mouse (only required for the installation).
- A monitor/TV that can view full HD (and has HDMI input).
Configure the Raspberry Pi
- Flash the SD card and install Raspbian Wheezy. Instructions are available here.
- Configure Raspbian to automatically log into X.
- Make sure that the system's clock is configured for the proper timezone.
- Expand the filesystem if needed.
Please note that Screenly currently relies on the user 'pi', so don't change the username.
Install Screenly OSE
Open a terminal-window (or SSH-session) and as the user 'pi' run:
cd ~ sudo apt-get update sudo apt-get -y install git-core git clone git://github.com/wireload/screenly-ose.git ~/screenly ~/screenly/misc/install.sh
(If you're running the installation over SSH, running the installation through a screen-session is highly recommended.)
Assuming everything went well, reboot your system. Screenly should now load.
Upon boot, Screenly's management URL should show up on the screen (e.g. http://aaa.bbb.ccc.ddd:8080). To manage the content, open up this URL on a different computer. Don't try to manage the content directly on the Raspberry Pi using a keyboard and mouse. That won't work.
Screenly currently three types of media:
- Screenly uses omxplayer as the video back-end. It is currently limited to MP4/h264-encoded videos.
Adobe Flash-media is not supported.
Images and web-pages will be rendered in 1920x1080, so adjust your content for this size.
It is also worth noting that no media is permanently stored on the Raspberry Pi. All content is simply retrieved from the remote server (with limited caching in the browser).
Since Screenly still is in beta, it's not unlikely that you'll run across bugs.
To upgrade Screenly, simply run (as the user 'pi'):
cd ~/screenly git pull python misc/migrate.py
Once done, simply restart the computer. If you prefer not to reboot, you might get away with (depending on the update):
pkill -f "viewer.py" sudo supervisorctl restart screenly