Changing your BrightSign's orientation to Portrait
There are two ways you can achieve this:
While manually installing Signagelive on your BrightSign device, you'll need to create a settings.json file from our BrightSign Config Generator. Here, you have the option of selecting Portrait or Portrait (270) from the Screen Rotation drop-down menu.
If Signagelive is already installed on your BrightSign device in landscape, you can plug a USB keyboard into your BrightSign device and press CTRL + S. This will allow you to set the rotation from the device itself, as per above.
General Video Guidelines
The video frame rate should match (or be a multiple of) the native frame rate of the display
Video upscaling/downscaling should be avoided, as this will affect performance (even if not noticeable)
Avoid video modes that are interlaced
Avoid video modes that result in over-scanning
Use optimal bit rates
Optimising Video Quality
Optimising Video Quality
Due to the added workload on the CPU and memory bandwidth that portrait configuration places on BrightSign devices, we recommend considering the specific prerequisites detailed below to ensure optimum video performance. This information is closely based on BrightSign's own guidance.
Recommended Encoding for Portrait Video Content (FFMPEG)
Portrait content should be encoded using FFMPEG. This applies to all videos displayed in portrait mode, including videos within Widgets/Apps.
The format of this command is as follows:
ffmpeg -i <existing-video-file> -c:v libx264 -x264-params b_pyramid=0 <new-video-file>
Unpacking the command above, this means:
-i is used to allow you to provide the existing video (input) file you want to convert
-c:v also known as codec:v or vcodec - this sets the video codec to be used, in this case it would be libx264
-x264-params overrides the default preset that ffmpeg uses, and additionally passes in an override for b_pyramid by setting it to 0
An example of the above command might be:
ffmpeg -i pre-existing-video-file.mp4 -c:v libx264 -x264-params b_pyramid=0 new-encoded-video-file.mp4
This converts the available video file into a brand new file that can then be used on your BrightSign Player.
Performance Considerations
Tickers, HTML, graphics, and large image files may affect performance.
Frequent updates and network traffic can impact the operation of the device.
When preparing your content, consider the amount and variety of content you are putting on your screen. If you are experiencing glitches in your playback, certain elements may need to be removed.
Performance guidelines by Player type
| Portrait video on BrightSign Players |
XC5 |
|
XD5, LS5, HS5, and HD5 |
|
XT4, XT3, XD4, XD3 |
|
HD4, HD3 |
|
LS4 |
|
LS3 |
|
Known Limitations with Portrait Video on BrightSign devices
Known Limitations with Portrait Video on BrightSign devices
Portrait video is not supported with interlaced video output modes.
Maximum bitrate support for video content is 50Mbps for the LS and HD models. The recommended CBR (constant bit rate) for these models is 25Mbps
BrightSign XD and XT models support bitrates of up to 95Mbps. The recommended CBR (constant bit rate) for these models is 30Mbps to 40Mbps.
If videos are not encoded correctly or if multiple videos are used on a player type where this is not supported then visual video glitching/tearing may occur on the videos trying to play.
Widget SDK (for Developers)
Avoid using the video playlist approach in the Widget SDK as issues may be observed on Series 3 / 4 players. Instead you should follow video encoding guidelines and make use of other video features such as the use of the poster attribute. For video playback in widgets you should also use the HWZ attribute, and set the z-index to -1.
// Video rotated 90 degrees and behind graphics layer.
<video src="example_movie.mp4" hwz="z-index:-1; transform:rot90;" autoplay loop>
To rotate video content, you will need to apply a transform option on Series 3/4 players running in Portrait. This is not required for Series 5 devices. To determine whether a player is running in Portrait mode, you can use the Widget SDK method getDisplayProperties() and check the rotation value in the response.
Signagelive.getDisplayProperties()
.then(function (displayProperties) {
console.log(displayProperties.rotation); // 0, 90, 180, 270
})
.catch(function (error) {
console.error("Unable to get rotation details: " + error.message);
});
Additionally, in a future update, we will allow you to determine dynamically whether a Series 3, 4 or 5 player is being used through the getPlayerDetails() Widget SDK method.
Signagelive.getPlayerProperties()
.then(function (playerProperties) {
console.log(displayProperties.deviceSeries); // 3, 4, 5
})
.catch(function (error) {
console.error("Unable to get player details: " + error.message);
});
More information on making use of Widget SDK options can be found on our Build Site.