Multi-Screen Video Synchronization
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.
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
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].