Optimizing Video Quality

 

BrightSign players are capable of high-quality video playback at 60 frames per second—without dropped frames, hiccups, or video corruption. However, since the digital A/V landscape includes a diverse array of formats, codecs, connectors, video modes, and resolutions, you can easily degrade the quality of video playback by not configuring your digital signage content properly. This tech note outlines the factors that affect video quality and the steps you can take to ensure that you get the best results.

Overview

To achieve optimal video quality, you must minimize the amount of processing that the player and display device must perform on the video:

  • Avoid interlaced video modes: Interlaced video modes (e.g. 1920x1080x60i) result in severe performance degradation, which will be especially noticeable if the video displays text. Note that the LS422, HD120, HD220, and HD1020 players automatically use interlaced video modes to display 1080p50, 1080p59.94, and 1080p60 video.

  • Match the video frame rate to the native frame rate of the display: The progressive frame rate of the video should be the same as (or a multiple of) the frame rate of the display. For example, if a display accepts a maximum frame rate of 50p or 75p, then a video at 25p will perform well. Video at 59.94p will work with 29.97p output, but every other video frame will be dropped.

  • Avoid scaling video unnecessarily: Upscaling or downscaling the video will result in some performance degradation, though the effects may not be noticeable. When practical, match the resolution of the authored content to the native resolution of the display or widget.

  • Avoid using overscan when possible: The best solution is to select a video mode that doesn't overscan at the chosen output.

  • Use an optimal bitrate: The maximum recommended CBR (constant bit rate) is 25Mbps for HD, LS, XDx30, and XDx32 players, while the recommended CBR for XT, 4K, XDx34, and XDx33 players is 30 to 40 Mbps.

You may also encounter problems with video quality if you have a bad encode. Try re-encoding the video or use a different application to encode the video.

Interlacing

Interlaced video modes (e.g. 1080i) are a legacy of cathode ray tube (CRT) TVs and should be avoided in all circumstances. While CRT TVs show an interlaced signal natively, LED, LCD, and Plasma displays must de-interlace the input prior to displaying it, thereby reducing the video quality. Many displays (especially monitors intended for use with PCs) do not de-interlace video properly, causing video flicker—even with static images.

We do not recommend using interlaced video; however, if you must use interlaced video, you can specify whether the de-interlacing should be handled by the display or the BrightSign player:

  • To have the display handle the de-interlacing, select an interlaced video mode in BrightAuthor (e.g. 1920x1080x50i) in the New project window or in the File > Presentation Properties > Main tab.

  • To have the player handle the de-interlacing, select a progressive mode with the appropriate resolution (e.g. 1920x1080x50p).

The LS422, HD120, HD220, and HD1020 players automatically use interlaced video modes to display 1080p50, 1080p59.94, and 1080p60 video.

Codecs and Formats

BrightSign players support numerous video codecs and container formats, but some applications require specific video codecs/formats:

  • Seamless Looping: For XTx44/43, XDx34/33, HDx24/23, 4Kx42, and LS424/423 players, we recommend using an .mp4 or .mov  file with H.265 encoded video (though H.264 will work as well). For other models, use an .mp4 or .mov file with H.264 encoded video. If the looping video includes audio, use PCM audio encoded with the SOWT codec.

  • BrightWall and Enhanced Synchronization: For XTx44/43, XDx34/33, HDx24/23, 4Kx42, and LS424/423 players, we recommend using an .mp4 or .mov file with H.265 encoded video (though H.264 will work as well). For other models, use an .mp4 or .mov file with H.264 encoded video. It is also possible to use a transport stream (.ts file), but the video must begin with a presentation timestamp (PTS) of zero.

  • Media Streaming: If you’re using a BrightSign player to stream content to other networked devices, the video must be formatted as a transport stream (.ts) file.

Overscan

Overscan, which is a type of upscaling, is performed on videos to account for variation in the screen edges of different TV models. The overscan mode on BrightSign players upscales the video by approximately 5%. Most modern TVs have an "exact scan" mode that eliminates the need for overscan entirely. Overscan can be disabled in BrightAuthor by selecting No overscan – use full screen area in the New project window or in the Edit > Layout tab (overscan can also be disabled in BrightScript). 

Overscan is only needed for TV modes (e.g. 720p, 1080p), and should never be applicable for VGA modes (e.g. 1370x768, 1600x1200); however, there is some inconsistency in the way that different TVs and monitors deal with overscan settings.

Display manufacturers use different terminology to refer to no overscan:

  • Panasonic: “1:1 mode”

  • Samsung/LG: "just scan"

  • Toshiba: "exact scan"

  • Vizio: No overscan settings, but the “wide” display mode will disable overscan.

Bitrates

Guidelines by Player Model

Product

Maximum Bitrates for 4K, HD, and other video*

Product

Maximum Bitrates for 4K, HD, and other video*

XTx44

95Mbps 

XDx34

95Mbps 

HDx24

50Mbps 

XTx43

50Mbps 

XDx33

50Mbps 

4Kx42

50Mbps 

LS424

50Mbps 

HDx23

50Mbps 

LS423

50Mbps 

*Values are for regular file playback and can be seen as playback in ideal conditions. See Performance Limiters, below, for more information.

Performance Limiters

The bitrates quoted are the maximum supported where the bitrate is calculated as a rolling average over a 12 frame period. Users can see the bitrate for a file plotted in this way in the DWS (see Some-video-encoding-advice-on-video-bitrate). 

The bitrate is reduced if:

  • Network playback is used. For example, UDP streaming requires the CPU to process the packets which reduces bitrates.

  • Rotating video on the screen consumes CPU, which doesn't really affect bitrate for file playback but will impact networking playback. 

  • If video is decrypted using AesCtr or AesCtrHmac modes, performance will be reduced by about 10Mbps across all platforms during video playback (TsAesCbcRbtTsAesCbcCbt, andTsAesEcb decryption will not reduce performance).

Portrait Video

When a BrightSign player displays a rotated video (at 90 degrees, 270 degrees, etc.), it consumes CPU and graphics-processor cycles to transpose the pixels of each video frame before sending it to the display. Compared to standard playback, rotated video places a substantially greater burden on CPU and memory bandwidth in the real-time display pipeline, so video playback can become overloaded and exhibit video glitches more readily than standard video playback. This section provides performance and playback guidelines for portrait video.

Performance Limiters

When playing portrait video, other real-time system tasks can, depending on the player model, interfere with playback. These tasks include the following:

  • 2D graphics operations: Tickers, HTML graphics, and large image files

  • Network Traffic: Performing large and/or frequent networked updates (e.g. via the asset pool)

  • USB audio

When building presentations, you need to consider these secondary tasks and their interaction with the hardware restrictions on your player model (outlined below). If your portrait video is exhibiting glitchy playback, you may need to reduce or eliminate such tasks or upgrade to a more performant player model.

Encoding Portrait Content

The following encoding specs let you optimize playback of portrait content:

ffmpeg -i tide1080.mp4 -c:v libx264 -x264-params b_pyramid=0 tide1080-1.mp4

Guidelines by Player Model

XC5, XT5

The XC5 and XT5 can output portrait video at 4K and at HD (1080x1920 at 60p). The XC4055 can play videos in landscape mode at resolutions up to 8K at 60fps (H.265), and the XC2055 can play videos in landscape mode at resolutions up to 8K at 30fps (H.265).

Both players can support playback of videos at very high bitrates (up to 400 Mbs depending on the encoding parameters).

Basic encoding guidelines can be found on this page.

XD5, LS5, HS5, and HD5

These players can output portrait HD video (1080x1920 at 60p). The XD5 and HD5 can output portrait video at 4Kp30.

XTx44, XTx43, XDx34, XDx33

The XTx44, XTx43, XDx34, and XDx33 models can output portrait HD video (1080x1920) at 60p. Multiple portrait video windows are supported (up to 60p for both the source file and the output), but the total area of all video windows should not exceed 1080x1920.

HDx24, HDx23

The HDx24 and HDx23 models can output portrait HD video (1080x1920) at 60p.

The framerate of the source video should not exceed 30p.

LS424

The LS424 can output portrait HD video (1080x1920) at 60p. 

The source video must be encoded as H.265, and the framerate of the source video should not exceed 1080p30.

LS423

The LS423 can output portrait HD video (1080x1920) at up to 50p. If there are additional system tasks (e.g. a ticker), the display output may need to be reduced to 1080p30 or less.

The framerate of the source video should not exceed 1080p30.

HTML Video

If your HTML page creates <video> tags dynamically, it can be easy to inadvertently maintain more than one active video player–even if the extra video players are not visible. If videos are displayed in portrait mode, additional video players will quickly exhaust CPU and graphics resources on the player.

To destroy an unused video player, clear the src attribute and reload the element using .load. The firmware will then synchronously release the hardware resources assigned to that element.

video.src = "" video.load()

To play a single video repeatedly, set the loop attribute on the corresponding HTML5 <video> element to true.  This will often give better results than attempting to loop the video "by steam" in JavaScript.  If the video has been authored correctly, the loop attribute will produce a seamless loop from the last frame back to the first with zero delay.

This example shows how to seamlessly loop video for an HTML5 video element without introducing black frames:

<video width="320" height="240" autoplay loop> <source src="movie.mp4" type="video/mp4" /> Your browser does not support the video tag. </video>

Mosaic Mode

Mosaic mode does not currently support portrait video.

Interlaced Video

Portrait video is not supported with interlaced video output modes (e.g. 1080i).