Azimos Labs - Precision Through Innovation
Veteran Owned & Operated
Client Login
ShieldSignage

Digital Signage Media Guide

Slides, timing and transitions for your store's TV screens

Everything your store's TV screens show comes from one folder on your website: a file called config.json and the slides it lists. This guide covers how to prepare the files, how long each one stays up, how each one comes in, and ends with a complete config.json you can copy.


How it works

Your folder, your screens

Each screen (an NVIDIA SHIELD TV or a Raspberry Pi) checks your folder on a schedule the screen's owner sets. It connects only to the web address built into the screen, only over HTTPS, and downloads only the files that changed since the last check. Nothing else is contacted: no analytics, no tracking, no other servers.

What your folder controls
The look (logo, background colour) and the playlist: which slides, in what order, for how long, and how each one comes in.
What it can never change
The admin PIN, kiosk lock and update schedule. The screen's owner sets those separately; a change on the website cannot touch them.
Checks on every file
Each file must be what its name says (a PDF must really be a PDF), and stay inside the size limits. Anything else is refused.
When something is wrong
A missing file or a mistake in config.json never blanks a screen: it keeps its last good copy and raises an alert for the owner.

Step 1

Prepare your files

PDF slides
Export from PowerPoint, Google Slides or Canva as PDF. Landscape 16:9 pages (13.33 x 7.5 in). Each page is one slide. Embed the fonts when you export.
Images
PNG, JPG or WebP, 1920 x 1080 (3840 x 2160 for a 4K screen). Up to 40 megapixels and 16,384 pixels on a side.
File names
Letters, digits, . _ -, no spaces, up to 4 folders deep. media/fall-sale.pdf works, media/Fall Sale.pdf does not.
Limits
300 MB per file, 3 GB for all files together, up to 500 playlist items.
Your folder
your-site/
  config.json          the playlist (below)
  brand/logo.png       shown for a few seconds when a screen starts
  media/slide1.pdf
  media/new-arrivals.jpg
  media/slide2.pdf
  media/hours.pdf
How a slide meets the screen: fit
"contain" Available
The whole slide in its own shape, with bars where the shapes differ. The default.
"cover" Available
Fills the screen in its own shape; the edges that do not fit are cut off.
"fill" Next update
Stretched to the whole screen; the shape changes to fit.

Step 2

How long each slide stays up

Set a time for every slide in defaults, then give any item its own. A PDF item shows each of its pages for that item's time. The playlist loops forever.

seconds
Time on screen, 2 to 3600 seconds. Default 10.
transition_ms
How long the transition takes, 0 to 5000 milliseconds. Default 800.
pages
Which PDF pages: "all", or pages and ranges such as "1-3,5".
splash_seconds
Your logo when a screen starts, 0 to 30 seconds (0: no logo). Default 4.

Step 3

How each slide comes in

A transition is how an item comes onto the screen. Set one for everything in defaults, or per item. Each preview below runs from a slide into a video frame at 1 second. Available works on your screens today; Next update arrives with the next app update. Heavy ones (3D) are best on a SHIELD TV; on a Raspberry Pi playing video, stay with light and medium.

Cuts and fades

The quiet ones. Readable on any screen, lightest on the hardware.

Pushes, covers and reveals

Movement with a direction. One value per direction: _left, _right, _up, _down.

Wipes and shapes

A hard edge or shape uncovers the next item. Directions as above for wipes.

Zooms

Scale changes. zoom and kenburns are on the screens now.

3D

The screen turns in space. Best kept for the Shield.


Step 4

A complete config.json

This file works on your screens today. Copy it, change the file names to yours, and save it as config.json in the top of your folder. The whole file is one { ... }, with straight quotes and commas between items (the last item has none).

{
  "format": 1,
  "branding": {
    "logo": "brand/logo.png",
    "splash_seconds": 4,
    "background": "#000000"
  },
  "defaults": {
    "seconds": 10,
    "transition": "fade",
    "transition_ms": 800,
    "fit": "contain"
  },
  "playlist": [
    { "pdf": "media/slide1.pdf", "pages": "all", "seconds": 12, "transition": "slide" },
    { "image": "media/new-arrivals.jpg", "fit": "cover", "seconds": 15, "transition": "kenburns" },
    { "pdf": "media/slide2.pdf", "pages": "1-3,5", "transition": "zoom" },
    { "image": "brand/logo.png", "seconds": 5, "transition": "fade", "transition_ms": 1200 },
    { "pdf": "media/hours.pdf", "pages": "1", "seconds": 8, "transition": "none" }
  ]
}
What each line does
KeyWhereWhat it does
formattopAlways 1 for now. Required.
logobrandingImage shown when a screen starts. Optional.
splash_secondsbrandingHow long the logo shows, 0 to 30.
backgroundbrandingColour of the bars around a contain slide, like #000000.
secondsdefaults, itemTime on screen, 2 to 3600.
transitiondefaults, itemHow the item comes in (Step 3).
transition_msdefaults, itemTransition length, 0 to 5000 ms.
fitdefaults, itemcontain or cover (Step 1).
playlisttopThe items in order, 1 to 500. Required.
pdf / imageitemThe file, relative to your folder. Exactly one per item.
pagesitem (PDF)"all" or pages like "1-3,5".

Step 5

Updating your screens

  1. Upload new or changed slides first.
  2. Upload config.json last, so a screen never reads a playlist that names a file not there yet.
  3. Screens pick it up at their next check. Your screen administrator can also start a check right away from the screen's admin menu.
  4. Remove old files from the folder once no playlist uses them.

Next update

Coming next: video

Videos join the same playlist, in any order: slide1.pdf, a video, slide2.pdf, another video, your logo. Each video plays to its end, can repeat, and plays its sound unless you turn it off. The new transitions above, "fill", a different time for single PDF pages, and a "random" transition come with it. Best video format for every screen: MP4, H.265 (HEVC), 1920 x 1080, 30 frames per second.

{ "video": "media/video1.mp4", "audio": false, "transition": "fade_black" },
{ "pdf": "media/slide2.pdf", "pages": "1-3", "page_seconds": { "2": 20 } },
{ "video": "media/video2.mp4", "plays": 2, "transition": "iris" }

Not for use yet: today's screens refuse a playlist with video items and keep showing their last good playlist.

Questions about your screens: contact your Azimos Labs administrator