Multi-Screen Video Synchronization

Ethan Bresnick
Sep 3, 2018 · 3 min read

Ethan Bresnick | Lisa Müller-Trede
ebresnic@usc.edu | mullertr@usc.edu

University of Southern California |
Division of Media Arts and Practice

Approach

In this documentation, we overview the process of running multiple synchronized video players over a wired network with the OMXPlayer-Sync program. This system utilizes video file timecode to maintain sequencing across a group of connected micro-computers. Documentation resulting from multiple associated video installation projects provides tested technical procedures for achieving synchronization for video mapping, multi-display, or digital signage.

Seedy knockout in preparation, 4 screens (Lisa Müller-Trede, 2018)

Materials

This process was tested on two microcomputers via an ethernet crossover cable, and three and six screen arrangements over an eight port ethernet hub.

  • 2x+ Displays & HDMI adapters
  • 2x+ Raspberry PIs & AC adapters
  • 2x+ Bluetooth Keyboards
  • 2x+ Ethernet Cables
  • 2x+ Ethernet Hub

Phase 1: Export Media

  • Export .mp4 files formatted for all five displays at the appropriate resolutions.
  • Load exported files on USB drive for media transfer.
  • Name files consistently for each Raspberry PI (ex: filename.mp4).
  • Place video files in directory “/home/pi/Videos”.

Phase 2: Prep Raspberry PIs (1)

Launch terminal and run following command line:

sudo su

sudo apt-get remove omxplayer

sudo rm -rf /usr/bin/omxplayer /usr/bin/omxplayer.bin /usr/lib/omxplayer

sudo apt-get install libpcre3 fonts-freefont-ttf fbset libssh-4 python3-dbus

sudo wget http://omxplayer.sconde.net/builds/omxplayer_0.3.7~git20170130~62fb580_armhf.deb

(note: on Windows and Mac keyboards f5 and f6 keys function as “~” key)

sudo dpkg -i omxplayer_0.3.7~git20170130~62fb580_armhf.deb

If libssl is not installed, run following commands and re-attempt install (check libbssl version number):

sudo wget security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u9_armhf.deb

sudo dpkg -i libssl1.0.0_1.0.1t-1+deb8u9_armhf.deb

Phase 2: Prep Raspberry PIs (2)

sudo wget -O /usr/bin/omxplayer-sync https://github.com/turingmachine/omxplayer-sync/raw/master/omxplayer-sync

(note: sudo wget dash capitalized O, not 0)

sudo chmod 0755 /usr/bin/omxplayer-sync

sudo apt-get install omxplayer

Phase 3: Test video player

sudo wget https://github.com/turingmachine/omxplayer-sync/raw/master/synctest.mp4

sudo omxplayer-sync -muv synctest.mp4

(hit control + C to exit player)

Phase 4: Run video file

Use “-muv” command for the primary driver unit and “-luv” for all other PIs to follow:

cd /home/pi/Videos

sudo ls -l

sudo omxplayer-sync -muv [filename]

Phase 5: Connect network

  • Operate numbered Raspberry PI units with respective wireless keyboard.
  • Connect Ethernet cable between each Raspberry PI unit and the associated port on ethernet hub.

Run following commands to establish network connection through local ethernet network:

cd /etc/
sudo cp dhcpcd.conf dhcpcd.conf.old
sudo vi dhcpcd.conf
interface eth0
(note: 0 is zero)
static ip-address = 192.168.0.
[unique address]/24
static routers = 192.168.0.1
static domain_name_servers = 192.168.0.1

Ice Time, 6 screens (Clea T. Waite, 2017)

References

Conde, S. (2017, January 30). OMXPlayer. Retrieved August, 2018, from https://omxplayer.sconde.net/

Josi, S. (2014, April 3). OMXPlayer-Sync. Retrieved August, 2018, from https://github.com/turingmachine/omxplayer-sync

Waite, C. T. (2017, November 9). Ice-Time: Six Screen Installation [Project Documentation].

Ethan Bresnick

Written by

Media Artist, Student Researcher at USC Cinematic Arts

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade