Multi-output

From SpinetiX Support Wiki

Jump to: navigation, search
Note  
Applies to iBX440 players.

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.

Screen Mirroring, 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"...
Note Note:
For more details about these tags, see the technical documentation on the Configuration API page.

Portrait orientation

Let's say that we want the screens to be in portrait mode instead.

Screens mirroring, portrait mode

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

2x2 video wall, landscape mode

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.

New Project dialog for iBX440 - Multiscreen Array format

Before configuring the player, we'll first focus on preparing the content:

  1. 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".
  2. 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.
  3. Import your media and compose the content as needed.
  4. 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>
Note Note:
Comparing to the example above, the values in the <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

2x2 video wall, portrait mode

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:

  1. 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".
  2. 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.
  3. Import your media and compose the content as needed.
  4. 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>
Note Note:
The values in the <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

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.

New LED wall project

Preparing the content in Elementi is pretty straightforward:

  1. 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.
  2. Import your media and compose the content as needed.
  3. 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

LED wall tower

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:

  1. 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.
  2. Import your media and compose the content as needed.
  3. 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>
Note Note:
The values in the <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

LED wall, custom shape

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 in 2816 + 3 * 704 = 4928 pixels.
  • The total height is 4 * 2048 = 8192 pixels.
Note Note:
To drive such a large LED screen, you'll probably need multiple LED controllers, supporting custom input resolutions.
New Project dialog for iBX440 - Multiscreen Custom format
Elementi multiscreen project - custom format - LED wall

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:

  1. 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".
  2. 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
  3. Import your media and compose the content as needed.
  4. 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>
Note Note:
The <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.

Video wall with individual screen rotations

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:

  1. 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".
  2. 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:
      Elementi multiscreen project - custom format - Video wall 1x4 independent rotations
      • 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
  3. Import your media and compose the content as needed.
  4. 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>
Note Note:
The values in the <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.

4K projector combined with a Full-HD screen

On the Elementi side, we will be using a Multiscreen Custom project:

  1. 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".
  2. 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
  3. Import your media and compose the content as needed.
  4. 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>
Note Note:
The <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

<?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>
This page was last modified on 7 May 2024, at 19:36.