For those that are not familiar, Screenly is a Digital Signage System for the Pi. There is a open source edition of it (OSE) that you can just download and install on your own SD card. I’ve been messing around with it for the past few days and it’s surprisingly simple and powerful. Below are some notes on how to fix various annoyances:
- ON 1080p SCREENS ONLY!! Normally when you use the web browser portion of Screenly you’ll notice that it does not fill the screen (there is a black border around the screen). The video’s play fine though. For some reason on 1920×1080 screen X windows does not detect the right resolution. To force this you need to modify/uncomment the following lines in config.txt file on the dos partition of the SD card (normally mounted under /boot when the pi is running screenly).
disable_overscan=1 hdmi_group=1 hdmi_mode=16
- mkv files with mp4 essence seem to work fine. I added a new video asset and uploaded the file Tears of steel (HD 720p version) from blender foundation which seems to work once you turn it on. BTW, it takes a long time after the upload progress scroll bar reaches the end to actually get a Asset entry on the web interface. You need to be patient.
- After playing around with http streaming of mp4 files (i.e: you create a URL asset and use the mp4 URL in the asset URL field and set the asset type to video), I thought about youtube. I’d come across a site in the past that would give you the mp4 direct download URL of any file hosted on youtube (if the mp4 file exists that is). So I dug around a bit and indeed it works. Here is how you go about it:
- Go and find the youtube video you’re interested in using your browser.
- Once you get to the video pause playback and change the URL of your browser and substitute ssyoutube instead of youtube (ie: if the video URL is http://youtube.com/djsalkjfklds change it by adding ss in front so the URL reads http://ssyoutube.com/djsalkjfklds) and load that page. Don’t worry about the “Get me out of here page that sometimes comes up” it’s just that if you’re logged into youtube is will use https instead of http. You can take the ‘s’ out if you like.
- Now on this page (savefrom.net) right click on the mp4 720p (or 1080p if it exists) link and copy the link.
- Back in the Screenly interface create a new asset and paste the URL you just copied into the Asset URL field and set the Asset Type to Video. Activate the asset and enjoy.
- To make sure you’re up to date with all the fixes you can ssh to the pi login as pi user and run the “run_upgrade.sh” script in ~pi/screenly/misc folder.
- The screenly guys have also added the ability to run stunnel on the device and create a tunnel between port 453 on the pi and port 8080 effectively giving you https secured connection. To turn this functionality on you need to run the “enable_ssl.sh” script in ~pi/screenly/misc folder. Don’t worry about the last error in this script. It’s just missing a closing quote mark on a print line.
- You’ve noticed that there is no mechanism to password protect the Schedule overview page where the carousel is running. It’s a feature that’s on their radar and will land at some point. Until then I needed to somehow restrict access to this page so students/others couldn’t get in there and mess stuff up. So I decided to use the ufw (User Friendly Firewall) command to modify the iptables so that the webserver would only respond to request from a certain subnet. First you need to become root by “sudo -i” from the pi account. Then you can use the following commands to check the rules, delete the unnecessary ones and add the new one to restrict access to the web server. You could do this for ssh port 22 as well if you wanted:
root@screenly:~# ufw status Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 8080/tcp ALLOW Anywhere root@screenly:~# ufw delete allow 8080/tcp root@screenly:~# ufw allow from xx.yy.zz.0/24 root@screenly:~# ufw status Status: active To Action From -- ------ ---- 22 ALLOW Anywhere Anywhere ALLOW xx.yy.zz.0/24
- More to come……