---
title: Modo de video multipantalla
slug: technical/es/modo-de-video-multipantalla
docTags: 
createdAt: 2025-03-11T07:10:25.852Z
---

Los reproductores BrightSign XC2055, XC4055 y XT2145 tienen múltiples salidas de video independientes. Esta página describe cómo configurar estas salidas con las APIs de BrightSign.

# APIs relevantes

Para múltiples salidas, la API relevante es `roVideoMode` `SetScreenModes` y la correspondiente `GetScreenModes` (para reproductores con una sola salida, la API principal es `roVideoMode` `SetMode`).

`GetScreenModes` devuelve un `roArray` de `roAssociativeArray` que describen cada salida disponible en la plataforma y cómo están configuradas. Los miembros del `roAssociativeArray` son:

- *nombre*: En la plataforma XC, los valores posibles son `HDMI-1`, `HDMI-2`, `HDMI-3`, o `HDMI-4`. El número de elementos del array depende del número de salidas:
  - El XC2055 tiene dos salidas, HDMI-1 y HDMI-2
  - El XC4055 tiene cuatro salidas, HDMI-1, HDMI-2, HDMI-3 y HDMI-4
  - El nombre indica al sistema qué salida está asociada con el resto de la configuración en esa entrada dentro del `roAssociativeArray` (el orden de las salidas HDMI no es importante).
- *video\_mode*: El videomode puede ser
  - Un videomode de formato BrightSign conocido (por ejemplo, *1920x1080x60p)*
  - Un modeline completo como se describe [aquí](docId\:hd4d35Rhnv24l5_gMcvyv).
  - *auto* que difiere ligeramente de las plataformas anteriores. *auto* no se recomienda al usar múltiples salidas porque las posiciones del canvas son fijas y, si una pantalla usa una resolución inesperada, no se posicionará correctamente en el canvas.
- *display\_x* y *display\_y*: La posición de la pantalla dentro del canvas general. El origen 0,0 es la esquina superior izquierda y cada pantalla puede posicionarse de forma relativa a este. Esto permite compensar los biseles, ya que se pueden dejar espacios en el canvas entre pantallas.
- *transformar*: `normal`, `90`, `180` o `270`. Cada pantalla puede rotarse independientemente. Cuando una pantalla se rota, rota todo el contenido, incluido el video. Si una sola pantalla está configurada en *1920x1080x60p* y `90` entonces la pantalla se ejecuta en modo vertical y todo el firmware se ejecutará como si la pantalla estuviera configurada en *1080x1920x60p* con el video y los gráficos rotados.
- *habilitado*: Si la pantalla está habilitada para salida. Para desactivar una salida, establezca `habilitado = falso`. No es necesario establecer otros campos.

Si no desea cambiar la configuración existente de la pantalla, no introduzca un valor para esas configuraciones.

:::hint{type="danger"}
Las velocidades de fotogramas en todas las pantallas deben coincidir exactamente para garantizar una sincronización precisa.
:::

# Plugins de Videomode

Los plugins de videomode le permiten establecer modos de video personalizados para múltiples pantallas. Esta función se ha actualizado para admitir múltiples pantallas en BrightSign Author versión 1.13.0 y posteriores, y BrightAuthor Classic versión 5.0.1.1 y posteriores. Debe hacer coincidir el modo gráfico que establezca al crear la presentación. Consulte [aquí](docId\:hd4d35Rhnv24l5_gMcvyv) para obtener más información.

## Ejemplo

`SetScreenModes` toma el argumento que `GetScreenModes` devuelve. Para configurar un muro de video 1x2 con compensación de bisel:

```text
vm=CreateObject("roVideoMode")
sm = vm.GetScreenModes()

sm[0].video_mode="1920x1080x60p"
sm[0].transform = "normal"
sm[0].display_x=0
sm[0].display_y=0
sm[0].enabled=true

sm[1].video_mode="1920x1080x60p"
sm[1].transform = "normal"
sm[1].display_x=0
sm[1].display_y=1100    ' Bezel compensation of 20 pixels
sm[1].enabled=true

sm[2].enabled=false
sm[3].enabled=false

vm.SetScreenModes(sm)
```

En este caso, el canvas resultante será 1920x2180 y el video y los gráficos en pantalla completa se mostrarán en todo el canvas.

Si una pantalla está `habilitada`, pero no está conectada, entonces se utiliza el tamaño correcto para la pantalla faltante para que el tamaño y la forma del lienzo permanezcan constantes. Obviamente, esto no es posible con el modo `auto` ya que el tamaño de la pantalla es desconocido y, por lo tanto, nuevamente se desaconseja el uso del modo *auto* con múltiples salidas.

Tenga en cuenta que si un script llama a `SetMode` en un reproductor capaz de múltiples salidas de pantalla, entonces efectivamente llama a `SetScreenModes` con solo la primera pantalla `habilitada` y una transformación de `normal`.

Para depuración interna, la entrada del registro `.bs/vms` es donde se almacena la configuración de la pantalla como una cadena JSON. Para el ejemplo anterior, se ve así:

```text
{"HDMI-1":{"mode":"1920x1080x60p","transform":"normal","x":0,"y":0},"HDMI-2":{"mode":"1920x1080x60p","transform":"normal","x":0,"y":1100}}
```

Eso se convierte en un archivo de inicialización que se almacena en memoria. Actualmente, ese formato se ve así:

```text
[core]
require-input=false
idle-time=0

[shell]
panel-location=""
panel-position=none
background-color=0xff000000
animation=none
close-animation=none

[output]
name=HDMI-A-1
mode=148.5 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
force-on=true
transform=normal
x_position=0
y_position=0

[output]
name=HDMI-A-2
mode=148.5 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
force-on=true
transform=normal
x_position=0
y_position=1100

[output]
name=HDMI-A-3
mode=off
force-on=false
transform=normal
x_position=0
y_position=0

[output]
name=HDMI-A-4
mode=off
force-on=false
transform=normal
x_position=0
y_position=0
```

Tenga en cuenta que el modo de estilo BrightSign se pasa a nuestro compositor como una modeline completa.
