Yes, you can program BrightSign media players without BrightAuthor software. These scripts make synchronized looping shows easy on Windows, Mac or Linux!
(updated 2025-03-25 to clarify instructions and fix broken links due to BrightSign site redesign)
Background
My ancient MultiScreener software plays Quicktime movies on Mac computers, using ethernet to keep any number of computers playing in sync. It works great on older OS versions (and has been used around the world by artists, galleries and museums). But I stopped using it years ago.
Inexpensive media players (like the WD TV series, Micca Speck, etc) 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.
BrightSign makes industrial media players that support multi-screen sync and complex interactivity. They are perfect in many ways: 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, BrightSign players need to be configured so they know what to do with your media. BrightSign provides BrightAuthor:Connected (for Mac or Windows). It’s goof 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 (“BrightSignOS”) 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. BrightScript is well-documented, including example scripts. Those examples don’t include network sync, but I modified snippets I found in old BrightSign forum posta 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: These scripts do not “genlock” players for 100% frame-accurate sync. Once the videos start they can drift out of sync slightly until the next loop. (In my tests I had a maximum of 1 or 2 frames of drift after 90 minutes.) You can do genlock sync with BrightAuthor’s “BrightWall” option instead.
Changes in this version:
- (I made this version in April 2019 but forgot to upload it until February 2020. Oops!)
- Videos are no longer stretched to fill the display. They will be centered and scaled proportionally to fit, with letterbox (or pillarbox) bars added if necessary. Other scale modes are available, see detailed info below.
You Will Need:
- The scripts from the download link above.
- A BrightSign player and an SD card for each video channel. (SD cards get corrupted after many thousands of read cycles. I recommend “high endurance” SD cards designed for dashcams, or BrightSign sells their own. Read more here.)
- A display and appropriate cable for each video channel.
- A properly encoded video file for each channel. Here’s a complete list of supported formats with further details here. (I have synced many H.264 encoded MOV and MP4 files with success.)
- 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)
Compatible Players
I have personally confirmed that players from Series 1, 2, 3, and 4 are compatible. Ancient Series 1 players like HD220 are perfectly fine for synced HD video. The only advantage of newer players is their youth, or perhaps their size or mounting considerations. I haven’t heard of compatibility problems with Series 5 +, so they are probably OK too. (Please get in touch if you have anything to add.)
* The audio-only player AU335 does not work with these scripts.
See this document to identify the series of your player.
What about 4K Video?
I haven’t tried 4k-capable BrightSign players with a 4K display. Let me know if you have successes or failures!
Where To Buy
BrightSign players are very expensive, and most of their features are unnecessary for synced video playback.. I recommend buying older players on the used market. There are countless listings on EBay because they are popular for trade shows, restaurant menus, and advertising signage. AV installers seem to de-install them and sell them in “lots” of 2 or more, which is perfect for us. They usually don’t come with power adapters, but I have info about power adapters here.
Format Your SD Cards
It’s a good idea to reformat your SD cards before use. On the Mac you can use Disk Utility’s “Erase” function. (More info about formatting your cards here.)
- If your video is less than 4GB: use FAT32 format. (This is the easiest and most compatible option for most people.)
- If your video is larger than 4GB and you have a “Series 3” or later player (XTx43, XDx33, HDx23, LS423) then format your card as ExFat. (requires firmware versions 6.2.94 or later)
- If your video is larger than 4GB and you have an older player:
• Mac users should use “Mac OS Extended”. (This requires BrightSign firmware from late 2013 or newer.)
• Windows users should use NTFS.
• Linux users should use EXT3 or EXT4
SD Card Setup & Wiring
- Download and unzip my scripts. You will see a Master folder and several numbered Client folders. Each folder contains a script called “autorun.brs”. Although the filenames are identical, each script is different.
- Physically label your SD cards. (One “Master” and as many numbered “Clients” as you need.)
- Copy the appropriate video file onto the root of the SD card for each player.
- For the first player, drag the “autorun.brs” file from the “Master” folder onto the root of the SD card.
- For the second player, drag the “autorun.brs” file from the “Client 1” folder onto the root of the SD card.
- Continue for each player, using subsequent client numbers for each one. (I provide enough scripts to do 6 channels of video. If you need more, edit the script using the info below. There is no limit to the number of channels.)
- Connect the ethernet cables as explained in the “You Will Need” section above.
- Make sure all displays are plugged in and turned on.
- Turn on the BrightSigns and they should begin playing and looping in sync within a minute. (The first startup sometimes takes awhile. Be patient!)
Troubleshooting & Tips:
I’ve tested this setup thoroughly, and many people use these scripts in museums, galleries, trade shows, etc. Read everything carefully, there’s a lot of info here.
- The Master player sends a start signal to all the Client players each time the video loops. If you shut down a player and re-start it during playback, it won’t resume until the next loop.
- Many problems are due to errors in script editing. You probably don’t need to edit the scripts! If you do, read my notes in the “Editing The Script” section.
- If your video plays until a certain moment and then hangs, you probably encoded it with a bitrate that’s too high for the player to handle. (scroll up to the “You Will Need” section and read about the supported codecs and bitrates.)
- For maximum sharpness, render your video to match the display resolution. By default, your video will be scaled to fit the display, with letterbox/pillarbox bars added if necessary. The player’s up-scaling algorithm looks great, but the down-scaling algorithm is pretty jaggy.
- If you are forcing a VideoMode, make sure your display supports the selected mode. (Example: some HDMI displays prefer 59.94Hz instead of 60Hz. Many are unable to do 24Hz at all.)
- I have seen several SD cards suddenly fail after a few months of flawless playback. It’s due to “read fatigue” as memory cells wear out when accessed repeatedly. For short videos I recommend rendering several loops into a longer video file, so the wear is spread out across more of the SD card’s memory. Scroll up to the “You Will Need” section to learn about SD cards.)
- Look at the blinking LEDs on the player to help diagnose any problems.
- Do a factory reset to clear out any hidden settings in the player’s registry
- If something isn’t working, re-format your SD card and download my scripts again.
- SD card formatting can be trickier than you think: Your player might be configured to write log files to the SD card by default. Certain disk formats are mounted read-only (Windows NTFS, Mac OS Extended) so the player will hang at the setup screen instead of loading your script. In that case it may be best to temporarily reformat your card as FAT32, confirm that the master script runs (with a <4GB test video) and then reformat the card to your preferred format and try again.
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.
Editing The Script:
You can edit these lines at the top of each script. 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 basic list of available options in the script file.) Here is the complete list from BrightSign.
ScaleMode = 1
How should the video be scaled if it doesn’t match the screen? … Insert a number from list below, NOT in quotes
0 = “Scale To Fit” Scales the video to fill the window in both dimensions. The aspect ratio of the video is ignored, so the video may be stretched/squashed.
1 = “Letterboxed And Centered” (recommended) Scales the video to fill the window in the longest dimension, adding letterbox/pillarbox if required to maintain video aspect ratio.
2 = “Fill Screen And Centered” Scales the video to fill the window in the shortest dimension. The aspect ratio is maintained, so the long dimension may be cropped.
3 = “Centered” Centers the window with no scaling.
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 …
Audio Formats and Multichannel Surround Sound:
- Some players (LS423) lack a headphone jack, but the USB-C jack passes analog audio if you use a specific headphone adapter. Most USB-C headphone adapters for phones will not work because they have an internal DAC. (BrightSign uses the older USB “Audio Accessory Mode” instead, which is very rare.) No scripting changes are required but the adapter must be present at startup. Plugging it in later won’t work!
– BrightSign usually sells the correct adapter in the “Accessories” section of their website, but it disappeared in 2025. Do not buy their “USB C to USB A and 3.5mm Serial Cable.” It won’t pass audio. (Contact BrightSign by phone/email to buy the correct adapter.)
– You can also take your chances with 3rd party adapters for older Android phones. I had success with an Amazon item: Motorola USB-C to 3.5mm Audio Headphone Jack Adapter Cable for Moto Z, Z Force, Z Force Droid, Z2 Force - 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 headphone 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 headphone 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 use VLC instead of QT Player.) - 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.)
Analog Video Output
Any BrightSign player with a VGA port can display NTSC/PAL component/S-Video/composite via an adapter. This signal is great for driving CRT monitors with full interlacing (replacing DVD players).
- Buy a “VGA to RGBHV” adapter and attach it to the player’s VGA port.
- The blue connector on the adapter will carry the composite signal for the CRT.
- In the script, set the VideoMode to “ntsc-m” for North American TVs.
- BrightSign provides more details here.
Previous Versions:
- New drag & drop setup. No script editing required!
(Pre-edited scripts are provided for master and 5 clients) - Each script now auto-detects the video filename and output resolution (manual override available via script editing).
- Manual setup (You must edit each script before use!)
- Tested with the recently released HD222 players
- Simplified the instructions included in the script (No changes to the script code itself)
2014-04-11
- Manual setup (You must edit each script before use!)
- 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
- Manual setup (You must edit each script before use!)
- Initial release