Multi-Screen Video Synchronization

Ethan Kurzrock
3 min readSep 3, 2018

Ethan Kurzrock | Lisa Müller-Trede

University of Southern California |
Division of Media Arts and Practice

Approach

In this document, 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 from multiple video installation projects provides tested procedures for multi-screen synchronization using OMXPlayer-Sync.

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 Kurzrock

University of Southern California | Division of Media Arts + Practice (MA+P)