The idea behind the synchronization feature is to allow you to synchronize separate media players (Android and/or Windows) to play the same content at the same time or to play different content to be synchronized very similar to a video wall effect.
Synchronization Feature
What is the Synchronization Feature?
When Should You Use It?
-
If you don’t have professional displays that can be daisy-chained into a video wall.
-
If you want to avoid buying costly signal splitters or switchers.
-
When you want to show high-resolution content across many displays easily.
-
If you have multiple devices (for example, in a store selling TVs) that should all play the same content.
Web NTP vs. Local NTP Server
First, you need to understand that this feature’s heart is NTP server. What does that mean? It means that we use an NTP (Network Time Protocol) server to synchronize the clock of each unit to be synced. This is how we get this effect. NTP can be an app installed on a local device (even on one that participates in the display) or a web NTP service.
If you have only few devices to synchronize, you can use a web NTP service rather than installing a local NTP app or one of the media players. Using a web NTP is very simple, but in case of no internet or too many calls from your devices to the web NTP server (that might be blocked by that NTP server), better install one.
For using a web NTP service, just search Google for one which is in your country. For example, in Germany the free web NTP URL is de.pool.ntp.org, in France it will be fr.pool.ntp.org and so on. If you’re using a web NTP, better have all your synced devices on the very same local network for better performance.
If you’re about to install an NTP app, then you’ll find the instructions for that in the end of this manual.
For best performance, better have all your synced devices from the same brand, model and firmware.
Content Restrictions
You must follow all the 4 guidelines for content. Otherwise it won’t work:
- Your playlist should have only ONE creative (however you can put, for example, more than one playlist if they do not overlap: example: one playlist plays from 8:00 till 16:00 and the other playlist plays from 16:00 till 21:00).
- That creative should have at least ONE slideshow widget.
- That slideshow widget must have at least TWO slides (doesn’t matter if they’re video, image, text or else). If, for example, you want to show only one video, then the workaround is to put that video twice, that means 2 slides where each of them is that same video.
- The duration of the creative must be an INTEGER. If it is a fracture (because the duration of a video which you have put in any of the slides in the slideshow widget is not an integer), better enter the slideshow widget and then manually set an integer value for each video slide of yours (there might be a
bug there where you see an integer, but in fact it is a fraction – which eventually appears in the duration of the whole creative). That should adjust the duration of the whole creative to be an integer.
Android Player Settings Configuration
Before starting, make sure your Android device is set to the correct time-zone:
-
Go to Android Settings > Date & Time.
-
If automatic date/time is on but the time-zone is wrong, turn it off.
-
Set the correct time-zone manually.
-
Turn automatic date/time back on to sync with the network.
Player App Setup (Android & Windows)
-
Install the NoviSign app on your devices.
-
Android Only: In the app settings under “Display,” set “Video to video transitions” to Background.
-
Go to the “Play Sync” settings to configure clock synchronization.
Important:
Currently there might be a bug in case of Android player app: if you change the sync settings after they were already set, the new changes you did won’t apply until you either go to the Android settings -> Apps -> NoviSign and then force stop the app or just reboot that unit.
Key Play Sync Settings
-
Playback Clock: Turn ON to sync playback trigger timing with the clock.
-
Reference Time: Starting point for sync calculation. Should be at least few rounds before the venue is open but enough time after connectivity window close, to allow completing all updates. The default 6:00. You should change it maybe to one hour before the venue with your digital signs opens.
-
Clock Server: Enter the permanent IP address of an NTP server on standard port 123 (or IP address:port if a custom port was set). You should type the local static IP address of the NTP server which you set above (example: 10.100.102.5). If you use a web NTP, just type it (something like de.pool.ntp.org, for example).
-
Clock Update: Clock refresh interval, the default is 1 minute, should be good for LAN. No need to change anything here.
-
Wait for Clock: On player start will not start playback until initial sync was performed. When server is online, usually the sync is performed far before the playback start. Currently, this setting or Timing Debug window are the only tools to verify time server connection. Better turn this off, as you don’t want your content to stop playing whenever there is no connection to the NTP server/app.
-
Video Accommodation: Delay before starting video playback.
Various devices have different delays on preparing video before playing, some like Minix also have bugs hanging UI for random 1 – 2 sec while probing MP4 format.
This delay can vary significantly even across same device types and will result in loss of synchronization even when while having perfect pulses. More delay gives more room to amortize these differences between devices on the expense of a black screen between videos. The default is 2 seconds but can be reduced for fast devices (it should be maximum of possible video load delay among all synchronized devices). No need to change anything here -
Timing Debug: Shows blinking sync indicator and sync traces on top of the content.
If there is a problem, but the indicators on the different media players are blinking seemingly simultaneously, it means that the players are in sync and the problem is not with pulse synchronization. When the clock server cannot be reached, the indicator becomes yellow (for around 24 hours) and then red (players still can be in sync for a while if initial update was successful, until clocks diverge too much, on good devices it can be days).
“post delay=xxx” line shows the delay until the accommodation point. If it is zero, accommodation value is not enough. While it is constantly above 500 seconds on all devices, it may be safe to reduce it more to shorten black screen period (if desired).
No need to change anything here, but we recommend to start when this setting is turned on, so you’ll be able to know if this unit is synced (green circle in the top left corner) or not synced (red or yellow circle in the top left corner). Later on, turn this setting to off.
How Does It Work
On the first round, it will be out of sync until the players come to the next item. They are expected to start on the same video, but since they do not start at the same time (it is impossible even if start triggered by perfect sync) they will play different parts of the same video. Then they should stop this video simultaneously and play next item together.
They also may be slightly out of sync until device is ‘warmed up’ – the content is cached and the device boot duties are finished. Until then, weak devices may have long, varying delays for loading the video but probably would sort it out after some time.
Next part is only in case of installing a local NTP app on one of your media players
NTP Server Installation and Setup
-
Search for “Time Server” on Google Play (e.g., “Time Server” by Ice Cold Apps).
-
Install and open the app.
-
Every time when you start the app, you need to press the “Continue” button.
-
In the top button bar, press the “Add” button, in order to add an NTP server.
-
Now, you have to fill some details:
- In the “Server name” field, give it any name you like (i.e. “My NTP Server”).
- In the “Run on port”, you can stay with the default or press the “Get random port” button which will randomize a port number for you (i.e. let’s assume that the port is 41700).
- Check the “Start on boot” checkbox.
- Right click to leave the server’s settings and then you’ll get a confirmation box asking you “Do you want to save the settings?”.
Press the “Yes” button.
- Click the new NTP server which you have just created and a popup window will appear in the center.
- Choose the “Start/Stop” option and the server will start (you can see that its status, below its name, will be “started – port 41700”).
- Click the “Settings” button in the top button bar.
- Check 2 more checkboxes: “Start the app on boot” and “Save all server settings to the sdcard”.
- Right click to leave window and then you will get a confirmation box asking you “Do you want to save the settings?…”. Press the “Yes” button.
- Click the “Info” button in the top button bar. Here you can see the IP address of this Android device. Remember it (let’s assume it is 10.0.0.2 for the example). Click the “Close” button.
- Click the “Exit” button in the top button bar (to apply all the settings).
-
Start the “Time Server” app again.
-
Exit the app by right clicking the mouse (so it will keep running in the background).
-
In the NoviSign app on that device, set the Clock Server (under the “Play Sync” block) to 27.0.0.1:41700 (127.0.0.1 is the local host IP address, while the 41700 is the port, in our example).
-
In other devices (Android or Windows) which should be synced with this NTP server, the value of this setting should be 10.0.0.2:41700 (the server’s IP address and the port, in our example)
-
Reboot the Android device to ensure the NTP server starts automatically.
Set Up Static IP Address
In the Windows based machine which is going to be used as the NTP server, make sure you have set a static IP address.
2. Sync Windows Time with Internet
Go to the Control Panel -> Date and Time -> Internet Time -> Change settings… ->
Check the checkbox of “Synchronize with an Internet time server” (if it is not checked)
Press the “Update now” in order to update the Windows time from internet (this will put the clock in sync).
Uncheck that checkbox (so it will not hold NTP port 123) and press “OK”.
3. Open Port 123 in Windows Firewall
In the Windows firewall, open port 123 for inbound and outbound calls for the private network.
4. Periodic Resynchronization
Once in a while (a week would be fine) stop the NTP with the monitor (which will be installed later) below and sync again with internet time (this can be automated with nightly batch file). The ideal is that the server clock will not be updated from internet during opening hours of your venue, to avoid sudden time jumps which can result in loss of sync for some time. It can be run scheduled during connectivity window.
5. Notes About Player Connectivity
Note the player the can connect to any custom port if the server supports it, but there seems no such setting for the server below.
6. Install NTP Tools
For the NTP server, install this: https://www.meinbergglobal.com/english/sw/ntp.htm
For the NTP monitor, install this: https://www.meinbergglobal.com/english/sw/ntp-server-monitor.htm
⚠️ While installing, do not change the defaults.
7. Configure the NTP Server
Now, you need to configure the NTP server, by doing the following changes in the configuration file (C:\Program Files\NTP\etc\ntp.conf):
Comment the lines (by adding # in the beginning of the line):
# restrict -6 ::1 (since we have no need for ipv6)
# server pool.ntp.org iburst minpoll 6 maxpoll 7 (not sure you’ll find this line at all, but the idea here is that this NTP server will serve from its local clock and not from the internet with an undefined period)
You should make sure you have the 5 following lines:
restrict 127.0.0.1
restrict 10.100.102.0 mask 255.255.255.0 nomodify notrap nopeer
[replace 10.100.102.0 with the local IP address of the NTP server, which should be a permanent IP, and leave the last segment as zero. Example: if the server’s IP is 10.0.0.8, you should put there 10.0.0.0; also, replace 255.255.255.0 which is the subnet mask with the real subnet mask of the NTP server. This will allow serving to the appropriate LAN]
driftfile “C:\Program Files\NTP\etc\ntp.drift”
server 127.127.1.0
fudge 127.127.1.0 stratum 12
8. Run and Monitor NTP Service
Run the NTP monitor as administrator (go to C:\Program
Files\meinberg\ntp_time_server_monitor, right click the file mbgtsmon.exe and choose “Run as administrator”). Restart the NTP service: in the first tab, “NTP Service”, click the “Restart NTP Service”. You need to make sure that the service status is changed to “Stopped” and then to “started”. Also, notice that the “Start Type” of the service is set to “Automatically”
In the third tab, “NTP Configuration File”, you can alter the configuration (rather than using Notepad++), in case you need.
In the second tab, “NTP Status” you should see a “LOCAL” entry only.
9. Alternative Options
An alternative can be: installing an NTP server on some Android boxes, as there are plenty on the market. However, few popular we tried stopped serving after a while, being killed/restarted by Android when in background. It also requires binding permanent IP in DHCP, but maybe worth to check. Probably, the easiest and most stable future path is an Ubuntu server on a proxy machine. In the meanwhile, Windows NTP server will do the job well.