BrightSign Video Mac Sync Scripts

http://www.zachpoff.com/software/brightsign-video-sync-scripts/

Background

My MultiScreener software plays Quicktime movies on Mac computers, using ethernet to keep any number of computers playing in sync. It works great (and has been used around the world by artists, galleries and museums) but computers are expensive, complicated,  and inherently unreliable.

Inexpensive media players (like the WD TV series) are often used for looping presentations because they play most HD formats and have no fans or discs to wear out. But they can’t do multi-screen synchronization (except via HDSync replacement firmware).

BrightSign makes industrial media players that support network features and complex interactivity. For multichannel video presentations, the $350 HD220 player is perfect. (It has no annoying user-interface. It comes to life as soon as you apply power, etc.) But there are some major pitfalls too …

Trouble in Paradise

For each presentation, the players need to be configured so they know what to do with your media. BrightSign provides the (Windows Only) BrightAuthor software for this. There is no Mac version and BrightSign doesn’t seem interested in making one. Considering that video content is often edited on Macs, this decision seems strange. If you have access to Windows, BrightAuthor is great for authoring complex presentations with playlists, interactivity & web data feeds, but it’s total overkill for multichannel synchronized playback.

Furthermore, BrightAuthor exports your video file in an obfuscated format on the player’s SD card. You can’t re-use previously-authored SD cards by swapping video files. You really need to start a new BrightAuthor project for every show.

BrightAuthor gets updated constantly. Most updates require a firmware update on the players and new projects are not backwards-compatible. New players ship with outdated firmware, so your current shows won’t run on a brand-new player until you update the firmware. If you update a presentation in the future you need to re-author your project, export a new SD card, and probably update the firmware too. This situation is pretty terrible for galleries, museums, or artists.

The Script Solution

The key to using a BrightSign with a Mac is scripting: For each project, BrightAuthor exports a file called “autorun.brs” in the BrightScript scripting language. When the player is powered-up it looks for this file and follows whatever instructions it finds. (This is no secret: BrightSign recommends that Mac users write scripts.) BrightScript is well-documented, including example scripts. Those examples don’t include network sync, but this old forum post does. I modified the code a bit and added comments to make it easier for inexperienced users.

  • The “Master” script tells the player to preload the specified video file, send a sync message over Ethernet to all clients, and start playing. When the video ends the player loops and sends another sync message.
  • The “Client” script tells the player to preload the specified video file and wait for the sync message, then play the video.

NOTE: BrightSign players cannot do timecode sync. Once the videos start they can drift out of sync slightly. (In my tests I had a maximum of 1 or 2 frames of drift after 90 minutes.)

You will need:

  • A BrightSign HD220 player and an SD card for each video channel. (I’ve used SanDisk Extreme Pro class 10 cards.)
  • A display and appropriate cable for each video channel
  • A properly encoded video file for each channel. (Complete List of supported formats. For best sync performance the manufacturer recommends using transport streams, not MOV/MP4 files. I’ve seen very little difference in practice.)
  • For 2 channel sync, you need 1 Ethernet cable. (It will connect directly between the 2 players.)
  • For 3 or more channels you need 1 Ethernet cable per player and 1 Ethernet switch.
    (Each player will connect to the switch)
  • A text editor (TextEdit on the Mac, Notepad on Windows, many options on Linux) to edit the scripts

The Steps:

  1. Format your SD cards
      Mac: Use “Mac OS Extended”. (Requires BrightSign firmware from late 2013 or newer.)
      Windows: For videos under 4gig, FAT32 is OK. Otherwise use NTFS.
      Linux: Use EXT3
  2. Download This zip file: BrightSign-Network-Sync-Scripts-ZLP-2013-11-15.zip
  3. Unzip the file and locate the master and client folders.
  4. One player will be the master and all other players will be clients. Copy your videos and script files onto the appropriate SD cards.
  5. Edit the variables in each script file, based on the explanations in “Script Setup” below.
  6. If your player is brand new, download the most recent firmware and copy the “.bsfw” firmware file to each SD card.
  7. Insert the SD cards in the BrightSign players and power them up.
  8. If updating firmware, each player will update, delete the firmware file from the card, and restart.
  9. Once they’re all running they should play and loop automatically, staying in sync.

Script Setup:

You must edit these lines at the top of each script. Use a text editor that supports plain text with no formatting.

videoFile = “myFile.mp4″
The filename of your video, in quotes.

VideoMode$ = “1024x768x75p”
The output resolution and refresh rate of your display, in quotes. (There is a list of available options in the script file.)

audioVolume = 15
The volume of the audio output, in percent. These players have LOUD outputs so try 10-20 for sane headphone levels.

Each client script has one additional variable:

ClientIP$ = “192.168.1.11″
The IP address of this client, in quotes. Each client player needs a unique suffix, but all players must have the same first 3 numbers.

example:

  • master = “192.168.1.10″
  • client 1 = “192.168.1.11″
  • client 2 = “192.168.1.12″
  • client 3 = “192.168.1.13″ … and so on …

Troubleshooting:

Not working? I’ve tested this setup thoroughly. Read everything carefully, there’s a lot of info.

If you have a general problem please see BrightSign support. If you found a problem with these scripts or you have an improvement to contribute, feel free to get in touch via my Contact page.