Multi-output
From SpinetiX Support Wiki
Introduction
The iBX440 digital signage player introduces an innovative multi-output feature, designed to expand the possibilities for dynamic and captivating display setups by seamlessly synchronize and drive up to four HDMI video outputs simultaneously, each at up to 4K@60Hz resolution. This cutting-edge feature empowers users to display the same content on multiple screens, effortlessly create stunning video walls, or drive LED screens at non-standard resolutions.
With the ability to configure each video output independently, users can also combine screens at different resolutions and/or rotations. It is important to note that when different video timings are being used, the output video signals may not be perfectly synchronized.
The user scenarios described below are provided purely as examples to illustrate how to employ the multi-output feature. Most require a certain ARYA plan or DSOS license type to be activated on the player, and, in some cases, you might also need to write and apply a custom configuration file onto the player.
Content mirroring
In this scenario, the content is created for one screen and the player is configured to replicate that content on four screens, simultaneously. All the screens must either be in landscape or portrait mode.
On-cloud deployments | On-premise deployments | |
---|---|---|
ARYA plan | Any | Not applicable |
DSOS license | Not required | DSOS WIDGETS or higher depending on the type of content |
Player configuration | See how to set up the iBX440 player for content mirror outputting in ARYA. | A configuration file must be written and applied onto the player; examples are provided below. |
Landscape orientation
In this first example, all the screens are in landscape mode.
- In Elementi, create a single-screen project as usual. Once done, publish the project onto the iBX440 player.
- To configure the iBX440 player to output the same content on four screens, each at 4K@60Hz resolution and landscape mode, use the following configuration file:
<?xml version="1.0"?>
<configuration version="2.2">
<display-video-mode/>
<display-video-mode>
<resolution>3840x2160</resolution>
<vertical-freq>60</vertical-freq>
</display-video-mode>
<display-orientation>horizontal</display-orientation>
<video-output-selector>card0-HDMI-A-1,card0-HDMI-A-2,card0-HDMI-A-3,card0-HDMI-A-4</video-output-selector>
</configuration>
Here is a quick explanation of the tags used above:
-
<display-video-mode/>
resets the player's video output mode. -
<display-video-mode>
sets the player's video output mode, matching the resolution and the vertical refresh rate of the screen. -
<display-orientation>
sets the orientation of the display connected to the player to horizontal/landscape mode.; other possible values are: “rotateRight”, “rotateLeft”, “rotate180”, “flipVert”, or “flipHor”. -
<video-output-selector>
enables the four video outputs of the player; the values "card0-HDMI-A-1", "card0-HDMI-A-2", ... correspond to the player's HDMI ports, labeled "HDMI1", "HDMI2"...
Portrait orientation
Let's say that we want the screens to be in portrait mode instead.
The steps to follow are the same as above, except that:
- When configuring the Elementi project, select the project's format as "9:16".
- In the configuration file, use "rotateRight" or "rotateLeft" within the
<display-orientation>
tag, matching whether the screens are rotated counterclockwise or clockwise. The configuration file would look like this:
<?xml version="1.0"?>
<configuration version="2.2">
<display-video-mode/>
<display-video-mode>
<resolution>3840x2160</resolution>
<vertical-freq>60</vertical-freq>
</display-video-mode>
<display-orientation>rotateRight</display-orientation>
<video-output-selector>card0-HDMI-A-1,card0-HDMI-A-2,card0-HDMI-A-3,card0-HDMI-A-4</video-output-selector>
</configuration>
8K video wall (2x2)
In this scenario, the player is configured to drive a 2x2 video wall, made out of 4K UHD screens. The content is created for the four screens as a whole, thus achieving an 8K UHD resolution. All the screens must either be in landscape or portrait mode.
On-cloud deployments | On-premise deployments | |
---|---|---|
ARYA plan | ARYA ENTERPRISE or PREMIUM plan | Not applicable |
DSOS license | Not required | DSOS SYSTEMS |
Player configuration | See how to set up the iBX440 player for a video wall in ARYA. | A configuration file must be written and applied onto the player; examples are provided below. |
Landscape orientation
Let's look at a 2x2 video wall made out of four 55-inch screens, in landscape mode, each outputting a 4K resolution content. The screens are narrow-bezel, with an asymmetrical frame of 2.25 mm (T/L) and 1.25 mm (B/R) – this means there's a "gap" of 3.5 mm between the screens that must be taken into consideration when creating the content and mapping it to the player's outputs.
Before configuring the player, we'll first focus on preparing the content:
- Create a multiscreen project in Elementi.
- Select the model as "iBX440 / 8K Partner Player".
- Select the license as "Systems".
- Select the format as "Multiscreen Array".
- For "Multiscreen", select "One player with multiple outputs".
- Input the screen details.
- Enter 2 for the number of rows and columns.
- Enter the screen diagonal as 55".
- Select the screen aspect ratio as "16:9".
- The vertical/horizontal frame (bezel) is per screen, so enter "1.75mm" in these fields.
- For screen height, select 2160.
- Import your media and compose the content as needed.
- Once done, publish the project onto the iBX440 player.
Next, to be able to write the player's configuration file, we need to determine the offset of each screen relative to the multi-output canvas.
- Within Elementi, having the above project opened, use the "Menu" → "Projects" → "Export Multiscreen Configuration..." option to generate a CSV file containing the screens' configuration – inside it, find the left and top coordinates of each screen.
- Without Elementi, you would need to calculate how many pixels would fit in the 3.5mm gap (i.e.,
3.5 * 3840 / screen_width_mm
), then use that to determine the offset in pixels of each screen.
Finally, the configuration file for this case would be the following:
<?xml version="1.0"?>
<configuration version="2.2">
<display-video-mode/>
<display-video-mode>
<resolution>3840x2160</resolution>
<vertical-freq>60</vertical-freq>
</display-video-mode>
<display-orientation>horizontal</display-orientation>
<video-output-selector>card0-HDMI-A-1:0:0,card0-HDMI-A-2:0:3851,card0-HDMI-A-3:0:2171,card0-HDMI-A-4:3851:2171</video-output-selector>
</configuration>
<video-output-selector>
tag are provided in the form of connectorID:x:y
, where x and y are the coordinates (left-to-right and top-to-bottom) in pixels of the screen top-left pixel, relative to the top-left pixel of the multi-output canvas. If x or y is omitted, it is assumed to be zero.Portrait orientation
Taking the video wall described above, but let's say that we want the screens to be in portrait mode instead.
The steps to follow are almost the same as above, with just a few differences:
- Create a multiscreen project in Elementi.
- Select the model as "iBX440 / 8K Partner Player".
- Select the license as "Systems".
- Select the format as "Multiscreen Array".
- For "Multiscreen", select "One player with multiple outputs".
- Input the screen details.
- Enter 2 for the number of rows and columns.
- Enter the screen diagonal as 55".
- Select the screen aspect ratio as "9:16".
- The vertical/horizontal frame (bezel) is per screen, so enter "1.75mm" in these fields.
- For screen height, select 3840.
- Import your media and compose the content as needed.
- Once done, publish the project onto the iBX440 player.
In the configuration file, use "rotateRight" or "rotateLeft" within the <display-orientation>
tag, matching whether the screens are rotated counterclockwise or clockwise.
The configuration file would look like this:
<?xml version="1.0"?>
<configuration version="2.2">
<display-video-mode/>
<display-video-mode>
<resolution>3840x2160</resolution>
<vertical-freq>60</vertical-freq>
</display-video-mode>
<display-orientation>rotateRight</display-orientation>
<video-output-selector>card0-HDMI-A-1,card0-HDMI-A-2:3851,card0-HDMI-A-3:0:2171,card0-HDMI-A-4:3851:2171</video-output-selector>
</configuration>
<display-video-mode>
and <video-output-selector>
tags are the same as in the first example – that's because it's only the content that actually gets rotated, in the opposite direction as the screens' orientation, while the video output signal remains as standard 16:9.LED video wall
In this scenario, the player is configured to drive a wide LED video wall having a resolution well above 4K. One or more LED display controllers (video processors) may be needed, depending on the total resolution of the LED wall and how many 4K video inputs are supported by the LED controller.
On-cloud deployments | On-premise deployments | |
---|---|---|
ARYA plan | ARYA ENTERPRISE | Not applicable |
DSOS license | DSOS SYSTEMS | DSOS SYSTEMS |
Player configuration | See how to set up the iBX440 player for an LED video wall in ARYA. | A configuration file must be written and applied onto the player; examples are provided below. |
Wide LED wall
Let's say we have a wide LED video wall made of tiles of 256x256 pixels for a total resolution of 11264x2048 pixels. Since the LED wall width is between 7680 and 11520, and its height is less than 2160, it means that we'll need three outputs on the player side. These will feed into one or more LED screen controllers (video processors), depending on how many 4K video inputs are supported by the LED controller.
Preparing the content in Elementi is pretty straightforward:
- Create a new project and make sure to:
- Select the model as "iBX440 / 8K Partner Player".
- Select the license as "Systems".
- Select the format as "Custom".
- Set the width to 11264 and height to 2048.
- Import your media and compose the content as needed.
- Once done, publish the project onto the iBX440 player.
The next step is to prepare the configuration file. We'll use the <video-output-selector>
tag to enable three outputs, aligned one after the another in a line – this means a total output resolution of 11520x2160 pixels, so larger than the resolution of the LED wall. To prevent the content to be scaled and centered, we'll use a <canvas>
tag, containing the width and height of the LED wall resolution. So, the configuration file for this case would be the following:
<?xml version="1.0"?>
<configuration version="2.2">
<display-video-mode/>
<display-video-mode>
<resolution>3840x2160</resolution>
<vertical-freq>60</vertical-freq>
</display-video-mode>
<display-orientation>horizontal</display-orientation>
<video-output-selector>card0-HDMI-A-1,card0-HDMI-A-2:3840,card0-HDMI-A-3:7680</video-output-selector>
<canvas>11264 2048</canvas>
</configuration>
Tall LED wall
Taking the LED wall described above, but let's say that we want it to be in portrait mode instead, like a tower.
The steps to follow are almost the same as above, with just a few differences:
- Create a new project and make sure to:
- Select the model as "iBX440 / 8K Partner Player".
- Select the license as "Systems".
- Select the format as "Custom".
- Set the width to 2048 and height to 11264.
- Import your media and compose the content as needed.
- Once done, publish the project onto the iBX440 player.
In the configuration file, use "rotateRight" or "rotateLeft" within the <display-orientation>
tag, matching whether the LED wall is rotated counterclockwise or clockwise.
The configuration file would look like this:
<?xml version="1.0"?>
<configuration version="2.2">
<display-video-mode/>
<display-video-mode>
<resolution>3840x2160</resolution>
<vertical-freq>60</vertical-freq>
</display-video-mode>
<display-orientation>rotateRight</display-orientation>
<video-output-selector>card0-HDMI-A-1,card0-HDMI-A-2:3840,card0-HDMI-A-3:7680</video-output-selector>
<canvas>11264 2048</canvas>
</configuration>
<display-video-mode>
, <video-output-selector>
, and <canvas>
tags are the same as in the first example – that's because it's only the content that actually gets rotated, in the opposite direction as the LED wall orientation, while the video output signal remains as standard 16:9.Custom shape video wall
On-cloud deployments | On-premise deployments | |
---|---|---|
ARYA plan | ARYA ENTERPRISE | Not applicable |
DSOS license | DSOS SYSTEMS | DSOS SYSTEMS |
Player configuration | A configuration file must be written and applied onto the player; examples are provided below. |
Staircase LED wall
This time, we want to create a staircase-shaped video wall composed of four LED displays, each having a resolution of 2816x2048 pixels, and positioned on top of the other with a 25% horizontal offset, like shown in the image on the right.
The first step is to determine the canvas size:
- For the total width, we must consider the horizontal offset of each LED block of
2816 * 0.25 = 704
pixels, resulting in2816 + 3 * 704 = 4928
pixels. - The total height is
4 * 2048 = 8192
pixels.
On the Elementi side, we could prepare a 4928 x 8192 custom-format project, as above, but this time will be using a Multiscreen Custom project instead, to have a better view of the area that is actually shown on the LED wall. For this, follow these steps:
- Create a multiscreen project in Elementi.
- Select the model as "iBX440 / 8K Partner Player".
- Select the license as "Systems".
- Select the format as "Multiscreen Custom".
- For "Multiscreen", select "One player with multiple outputs".
- Open the project's main index.svg.
- Under the Properties tab in Edit panel, enter the total width (4928) and height (8192) of the canvas.
- Under the Screens tab, fill out the details of each output:
- The width (2816) and height (2048) are identical for all outputs.
- The X and Y coordinates are as follows:
- HDMI1 → 0, 0
- HDMI2 → 704, 2048
- HDMI3 → 1408, 4096
- HDMI4 → 2112, 6144
- Import your media and compose the content as needed.
- Once done, publish the project onto the iBX440 player.
Next, we'll be using these coordinates within the configuration file, which would look like this:
<?xml version="1.0"?>
<configuration version="2.2">
<display-video-mode/>
<display-video-mode>
<custom>2816 2048 60 cvt-R p</custom>
</display-video-mode>
<video-output-selector>card0-HDMI-A-1,card0-HDMI-A-2:704:2048,card0-HDMI-A-3:1408:4096,card0-HDMI-A-4:2112:6144</video-output-selector>
</configuration>
<display-video-mode>
tag sets a custom video output mode for each output, matching the resolution of each LED wall block.Independent screen rotations
Starting with DSOS 4.8.3, independent screen rotations are also supported, which allows creating even more custom video walls.
Let's take as example a 1x4 video wall with four 1080p screens, where the two outer screens are in landscape mode and the two inner screens are in portrait mode, eventually with a larger space in between.
The first step is to determine the canvas size:
- For the total width, we first need to measure the horizontal space between the screens, including the screen frame, and transform it in pixels using this formula:
offset_mm * screen_width_px / screen_width_mm
(or the equivalent using inches instead of millimeters). Add all together to get the canvas width in pixels. - The total height, simply take the resolution of the screen.
- For this example, let's consider a canvas of 7080x1920 pixels, with a small offset of 80px, respectively a larger one of 920px, between the screens.
On the Elementi side, we will be using a Multiscreen Custom project; for this, follow these steps:
- Create a multiscreen project in Elementi.
- Select the model as "iBX440 / 8K Partner Player".
- Select the license as "Systems".
- Select the format as "Multiscreen Custom".
- For "Multiscreen", select "One player with multiple outputs".
- Open the project's main index.svg.
- Under the Properties tab in Edit panel, enter the total width (7080) and height (1920) of the canvas.
- Under the Screens tab, fill out the details of each output:
- The width (1920) and height (1080) are identical for all outputs; for the two screens in portrait mode, the values are transposed.
- The X and Y coordinates are as follows:
- HDMI1 → 0, 0
- HDMI2 → 2000, 0
- HDMI3 → 4000, 0
- HDMI4 → 5160, 0
- Import your media and compose the content as needed.
- Once done, publish the project onto the iBX440 player.
Next, we'll be using these coordinates within the configuration file, which would look like this:
<?xml version="1.0"?>
<configuration version="2.2">
<display-video-mode/>
<display-video-mode>
<resolution>1920x1080</resolution>
<vertical-freq>60</vertical-freq>
</display-video-mode>
<video-output-selector>card0-HDMI-A-1,card0-HDMI-A-2:2000:0:rotateLeft,card0-HDMI-A-3:4000:0:rotateLeft,card0-HDMI-A-4:5160</video-output-selector>
</configuration>
<video-output-selector>
tag are provided in the form of connectorID:x:y:orientation
, where x
and y
are the coordinates (left-to-right and top-to-bottom) in pixels of the screen top-left pixel, relative to the top-left pixel of the multi-output canvas - if x or y is omitted, it is assumed to be zero - and orientation
is an optional parameter to set the orientation of the display connected to the specified player output - it can take one of the following values: horizontal (lacuna value), rotateRight, rotate180, rotateLeft, flipVert, flipHor.Different screen resolutions
With the ability to configure each video output independently, users can also combine screens at different resolutions. It is important to note that when different video timings are being used, the output video signals may not be perfectly synchronized.
For instance, let’s say we want to combine a 4K projector, showing content dedicated to the next event, with a Full-HD screen, showing the next meetings and wayfinding information.
On the Elementi side, we will be using a Multiscreen Custom project:
- Create a multiscreen project in Elementi.
- Select the model as "iBX440 / 8K Partner Player".
- Select the license as "Systems".
- Select the format as "Multiscreen Custom".
- For "Multiscreen", select "One player with multiple outputs".
- Open the project's main index.svg.
- Under the Properties tab in Edit panel, enter the total width (3840) and height (3240) of the canvas.
- Under the Screens tab, fill out the details of the two outputs:
- HDMI1 → 0, 0, 3840, 2160
- HDMI4 → 960, 2160, 1920,1080
- Import your media and compose the content as needed.
- Once done, publish the project onto the iBX440 player.
The configuration file would look like this:
<?xml version="1.0"?>
<configuration version="2.2">
<display-video-mode/>
<display-video-mode>
<output>card0-HDMI-A-1</output>
<resolution>3840x2160</resolution>
<vertical-freq>60</vertical-freq>
</display-video-mode>
<display-video-mode>
<output>card0-HDMI-A-4</output>
<resolution>1920x1080</resolution>
<vertical-freq>60</vertical-freq>
</display-video-mode>
<video-output-selector>card0-HDMI-A-1,card0-HDMI-A-4:960:2160</video-output-selector>
</configuration>
<display-video-mode>
tag is used twice to set the video output mode, matching the resolution and the vertical refresh rate of the two screens.See also
- Get started with the iBX440
- DSOS
- Video output
- Video decoding
- Display settings
- Audio
- Multiscreen content
- Configuration API
<?xml version="1.0"?>
<configuration version="1.2" compatible="2.0">
<screeen-aspect-ratio>16:9</screeen-aspect-ratio>
<display-orientation>horizontal</display-orientation>
<reboot/>
</configuration>