Raspberry Pi Video Playout


alan2

Click here to see more about my services

Many shows, events or set-ups benefit from having a video playing out on a rotation. The basics here are fairly simple and a Raspberry Pi 3 is a cheap way to build something basic. Uses could include a video menu rotating options, showing video clips or photos at a wedding, running an animated logo on screen at an event, etc.

Note that if this is for a gear bag or case, you can get away with a bare board and USB controller. If it’s a client installation you might want to consider a nice case and building a button to the GPIO – for the example here you’d need to modify the code and you can skip the qjoypad section. If you wire to the GPIO your button should connect to pins 5 and 6 for shutdown.

Along with playing a video on repeat, I use a USB game controller to allow me a little control. My main use here is to have a video with a count up that I can press a button to re-set. This can be used to time any part of your show, and the multi-view is a great place to display it, but it’s not hard to use this set up to have a little more control over the video. See the end of the post for more info on that.

This is assuming a basic Raspberry Pi build. I started with a fresh install of Raspian OS Full 32bit. I booted up, disabled bluetooth and set up wifi. I also made sure that my display settings were set to 1080p60. (may not be needed for you, but I had to also edit /etc/resolv.conf and add a google name server 8.8.8.8 as the one for my router doesn’t play nice with the Pi)

Once the software is all installed, you can set up ssh for changing the video source out but I’d strongly suggest disabling wifi before taking it to an event. If you’re installing at a client location you might want to research code to lock down the ethernet too, and change the login password.

Install all software:

Use Terminal to apt-get with the following commands :

sudo pip3 install pynput

sudo apt-get install qjoypad

Open and set the buttons for qjoypad.

This may take some trial and error. Open the app from the main menu – Games section. Save the profile as ‘video’
I set one button to be the key ‘n’ as this advances a video on VLC to next. The second button I set as ‘esc’ and will be used to shutdown the Pi safely. I close this key as I don’t need to use it if I need to log on and make changes to the set up in the future, and if I need the esc key I can turn off the script ahead of time. The esc key is used by VLC to exit fullscreen and isn’t something we need to do in normal operation.

Write python script for shutdowns

In Terminal use :

mkdir /home/pi/scripts

sudo nano /home/pi/scripts/shutdown.py

use the following code :

import os
from pynput.keyboard import Key, Listener

def on_press(key):
   print('{0} pressed'.format(
   key))

def on_release(key):
   if key == Key.esc:
      os.system("sudo shutdown -h now")
   return True

# Collect events until released
with Listener(
      on_press=on_press,
      on_release=on_release) as listener:
   listener.join()

Save by pressing ctrl+x, y, return

Set the script, video and qjoypad to run at boot

in Terminal still, use :

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

At the bottom add :

@vlc path_to_video_file --loop --fullscreen
@qjoypad video
@sudo python3 /home/pi/scripts/shutdown.py

Save by pressing ctrl+x, y, return

Our end result: A small and cheap box that when it receives power will boot up, and start playing a video on repeat. Pressing one button on our controller will move to the next video (in this case the same one) and pressing another button will initiate a safe shutdown of the Pi.

Our magic is all in the code at the end here: we run our python script which is constantly checking for the ‘esc’ key which will initiate a safe shutdown. qjoypad is listening for button presses on the controller and translating them to keyboard presses. And VLC starts up on boot. We have set the options to fullscreen and also loop.

Make sure that path_to_video_file is set correct for you – my path is /home/pi/Desktop/Segment.mov

We can do a LOT more with VLC here if we wish. Listing several video files will make a playlist on start with the videos in that order and pressing next will advance to the next one in our playlist. If you have several, you can build a playlist in the VLC GUI and save the playlist file as an mu3 file and reference that on startup also.

Here is a full list of command line arguments you could use. https://wiki.videolan.org/Documentation:Command_line/

MODELLING VIDEOS

FAN VIDEOS

HYPE VIDEOS

HYPE VIDEOS

PROMOTIONAL VIDEOS

PROMOTIONAL VIDEOS

ENTERANCE VIDEOS

ENTERANCE VIDEOS

MUSIC VIDEOS

MUSIC VIDEOS

MODELLING VIDEOS

MODELLING VIDEOS

HIGHLIGHT PACKAGES

HIGHLIGHT VIDEOS

CINEMATIC SHORTS

CINEMATIC VIDEOS

FAMILY VIDEOS

FAMILY VIDEOS

Previous
Next

My name is Alan. I’m based just outside Toronto, Ontario. 

My background is in digital media from video editing, live event production, photo editing and programming. 

I can help with developing all kinds of events, including managing live audio, video and lighting, digital media for promotions and advertising, developing merchandise, building websites and online stores, and even post-production video work.

I offer significant discounts to charities and non-profit groups.

TESTIMONALS – CONTACT ME

Take a look at what I can do…

LIVE VIDEO PRODUCTION

VIDEO EDITING

POSTERS

MERCH

GRAPHIC DESIGN

WEB DESIGN