BrightSign Video Sync Scripts


Yes, you can use BrightSign media players with a Mac!
Here’s how to configure them without the (Windows only) BrightAuthor software.

BrightSign with Apple Logo Sticker

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 HD220 discontinued HD222 player ($350) is perfect. Update for 2015: These scripts are reported to work on the LS422 also, which is smaller & cheaper but lacks 60p.

So BrightSign players seem perfect for our needs: No annoying user-interface, cheaper and more reliable than a computer. They come 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 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 or MP4 files but I’ve seen no 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 to edit the scripts.
Warning: Apple’s TextEdit app will break your scripts! It will second-guess your motives and make subtle substitutions (“smart quotes”, spellcheck, etc) that corrupt the code.  If you’re careful you can turn off those features but I heartily recommend TextWrangler instead. It’s free and it doesn’t break anything!

Download and Instructions:

  1. Download my zip file: BrightSign-Ethernet-Sync-Scripts-ZLP-2015-02-05.zip
    (Tested on HD222 players in 2015 – works fine!)
  2. Format your SD cards (More info here.)
      Mac: Use “Mac OS Extended”. (On HD220 players this requires BrightSign firmware from late 2013 or newer.)
      Windows: For videos under 4gig, FAT32 is OK. Otherwise use NTFS.
      Linux: Use EXT3
  3. Unzip the download 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. Do not rename the scripts!
  5. Edit the variables in each script file, based on the explanations in “Script Setup” below.
  6. If you have an old HD220 player, download the most recent firmware and copy the “.bsfw” firmware file to each SD card. All modern players have new enough firmware to support these scripts, so they don’t need any updates.
  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.
Did these scripts help you? Donations are appreciated. (sorry, not tax-deductible)

Script Setup:

You must edit these lines at the top of each script. Use a text editor like TextWrangler that supports plain text with no formatting. Do not edit anything else later in the script file!

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 here.

Every problem I’ve seen was due to a text editor like Apple TextEdit. See the red box above.

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.

Audio Formats and Multichannel Surround Sound:

  • AAC mono or stereo is fine, at 44.1 or 48kHz sampling rates. (It will be decoded by the BrightSign and passed over HDMI as uncompressed PCM, while also coming out of the BrightSign’s analog audio jack.)
  • AAC format surround is not supported.
  • AC3 format surround is passed-through to the HDMI output, to be decoded by a compatible receiver. The BrightSign won’t decode the AC3 to PCM over HDMI and nothing will come out of the analog audio jack.
    AC3 Details:
    • Encode your video as H264 (MOV or MP4 containers work fine)
    • Encode your 5.1 audio to a Dolby digital AC3 file (just like for DVD authoring in the days of old)
    • Use tsMuxeR to mux them together into an MPEG transport stream (.TS file)
    • The TS file will play on the BrightSign, passing the Dolby Digital audio over HDMI.
    – (This forum post indicates that MP4 and MOV containers should work too, but I could only make it work with TS containers.)
    – If you want to play your TS file on a Mac you need to install the A52 AC3 codec from the Subler project. (Works great in QTX but doesn’t help with QT7.)
  • Audio will not be embedded in the HDMI output if the script is set to a resolution that isn’t traditionally used for video. (like 800×600 or 1024×768)

Black Level:

  • At HD and computer resolutions, the HDMI output seems to use the full brightness range of the display
  • At 720×480 resolution (aka standard def.) blacks are lifted. It looks like the traditional 7.5 IRE “pedestal” from the days of old. (There is no pedestal at 640×480 though.)

Changelog:

2015-02-05

  • Tested with the recently released HD222 players
  • Simplified the instructions included in the script (No changes to the script code itself)

2014-04-11

  • Fixed typo in example video mode (There was an extra p in “75p”)
  • Renamed the download to avoid confusion with the “BrightSign Network” which is BrightSign’s subscription based service for content updates.

2013-11-15

  • Initial release