Callaba
Mostrar u ocultar la navegación
Inicio de Callaba

Multiview

Multiview reúne entradas RTSP, SRT, RTMP o NDI en un multiviewer para el navegador. Añade directamente la URL RTSP de una cámara o servidor multimedia; no necesitas convertirla a SRT o RTMP solo para mostrarla en el mural.

Qué haceCrear un Multiview para operadores

Elige este módulo cuandoLos operadores necesitan una sola pared en el navegador para varias señales SRT, RTMP o NDI.

Usa otro módulo cuandoUsa Reproductores web para la audiencia; Multiview es la superficie de supervisión de operadores.

1Añade entradas2Organiza el layout3Abre Multiview
POST /api/multiview/create
12 endpoints

Antes de empezar

Usa x-access-token para configurar, iniciar y detener Multiview y para crear sesiones autenticadas de espectadores. Si visibility es PUBLIC, cualquier persona que conozca el ID puede usar los métodos públicos de visualización, estadísticas y acceso; comparte el ID únicamente con la audiencia prevista.

Qué puedes hacer

  • create guarda Multiview, el layout, la visibilidad y las entradas iniciales; se admite una lista de entradas vacía.
  • update aplica la lista completa de entradas y el layout deseados.
  • getAll, getCount y getById consultan las vistas guardadas.
  • start y stop controlan el proceso de supervisión.
  • join devuelve los datos de sesión del navegador para un espectador autorizado.
  • remove elimina Multiview.

Flujo de ejemplo

  1. Crea un Multiview privado con el layout necesario; al principio la lista de entradas puede estar vacía.
  2. Actualízalo con el conjunto completo de entradas RTSP, SRT, RTMP o NDI.
  3. Inicia Multiview y llama al método autenticado join.
  4. Abre la sesión de visualización devuelta y comprueba el estado en directo de cada entrada.
  5. En las actualizaciones posteriores, envía siempre la lista completa; las entradas omitidas se desvinculan.

Casos de uso habituales

  • Supervisar cámaras RTSP directamente, sin crear un puente SRT/RTMP independiente.
  • Supervisar las señales principal y de respaldo en una sala de control.
  • Dar a un productor remoto una vista única de cámaras, salida de programa y señales de retorno.
  • Comparar salidas regionales o por idioma antes de distribuirlas.

Límites y resolución de problemas

Corrige nombres, URL RTSP, IDs de entrada, visibilidad o datos de participantes que falten o no sean válidos antes de repetir la solicitud. Multiview puede seguir disponible aunque una entrada esté offline; comprueba por separado el estado en directo de cada entrada. Añade una canalización de procesamiento solo cuando la fuente necesite transcodificación, cambio de tamaño, ajustes de audio o un protocolo de entrega independiente.

Siguientes pasos

Conecta las señales previstas, valida la experiencia de acceso y habilita el acceso público solo cuando Multiview deba compartirse.

Receta de solución REST

Crear y gestionar un multiview de operación

Crea el mosaico con entradas verificadas, actualiza el diseño sin sustituir su identidad, inícialo y revisa el recurso guardado antes de compartir una sala pública.

  1. Crear el mosaicoDefine las fuentes, el diseño, la visibilidad y los ajustes del operador.POST /api/multiview/create
  2. Actualizar fuentes y diseñoEnvía el id existente con el estado completo de sala, fuentes, visibilidad y diseño que necesites.POST /api/multiview/update
  3. Iniciar el mosaicoInicia el multiview cuando sus recursos de entrada estén disponibles.POST /api/multiview/start
  4. Consultar el mosaico gestionadoConfirma las fuentes y la visibilidad desde el recurso autenticado antes de exponer un id público.POST /api/multiview/getById
  5. Consultar el estadoUsa la consulta pública solo para una sala intencionadamente pública.POST /api/multiview-public/getStat

Trata el id de un multiview público como material de acceso compartible. Mantén los muros privados tras los métodos autenticados.

Flujo de varios módulos

Ingerir una señal, supervisarla en Multiview y grabarla

Aprovisiona primero la ingesta SRT, conecta el id devuelto a un mosaico privado de Multiview y reutiliza la misma fuente estable en una grabación.

  1. Crear la ingestaConfigura listener, acceso, latencia y enrutamiento; conserva el id del servidor SRT.POST /api/srt-servers/create
  2. Iniciar la ingestaInicia el listener y confirma la conexión de la fuente antes de crear recursos downstream.POST /api/srt-servers/start
  3. Crear el mosaico privadoCrea la base de Multiview con diseño, visibilidad y overlays.POST /api/multiview/create
  4. Conectar el mosaico SRTAsigna el id del servidor SRT a source_id y usa el tipo de fuente SRT software documentado.POST /api/multiview/update
  5. Iniciar la supervisiónInicia el mosaico actualizado y accede mediante la ruta autenticada de operador.POST /api/multiview/start
  6. Crear el proceso de archivoSelecciona el mismo servidor mediante el preset SRT de grabación y elige formato y modo.POST /api/recording/create
  7. Iniciar la capturaInicia la grabación cuando la ingesta y el mosaico estén estables.POST /api/recording/start
  8. Verificar la capturaSupervisa bitrate, cadencia, tiempo de salida, velocidad y progreso de forma independiente.POST /api/recording/getStat

Multiview se crea actualmente con una lista inputs vacía. Añade el mosaico SRT con update, usando INPUT_TYPE_SRT_SOFTWARE como source_kind y el id del servidor SRT como source_id. La creación de la grabación necesita su propio preset SRT; el id de Multiview no es un id de fuente de grabación.

POST
/api/multiview/create
Requiere token de API

Crea un Multiview y, salvo que active sea false, inicia sus entradas y la conferencia. El usuario se obtiene del token de API; no envíes user_id.

Siguiente llamada: usa getById para consultar las entradas guardadas y después join para emitir un token de operador.

Los errores de validación devuelven { success: false, status, code, message, details } con estado 400.

Parámetros del cuerpo de la solicitud
Identidad
name
string
Copiar enlace directo

Nombre obligatorio que se muestra a los operadores, de 1–120 caracteres.

Layout
layout_id
string
Copiar enlace directo

Identificador opcional de la disposición. Callaba Engine usa 4-tiles de forma predeterminada.

overlay_settings
object
Copiar enlace directo

Configuración opcional de superposición que se guarda con el muro de vídeo.

Entradas
inputs
array
Copiar enlace directo

Definiciones opcionales de las entradas. Los tipos de fuente admitidos en ejecución incluyen RTSP directo y variantes SRT, RTMP y NDI; usa una matriz vacía si quieres crear el muro de vídeo antes de conectar las señales.

Acceso
visibility
string
Copiar enlace directo

Valor opcional: PRIVATE o PUBLIC. El valor predeterminado es PRIVATE.

Runtime
active
boolean
Copiar enlace directo

Estado inicial de ejecución opcional. Se considera activo salvo que se establezca explícitamente en false.

Crear Multiview
Copiar código
curl --request POST \
--url http://localhost/api/multiview/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Master control multiview",
"layout_id": "4-tiles",
"visibility": "PRIVATE",
"overlay_settings": {},
"inputs": [],
"active": true
}'
Respuesta
Identidad
id
string
Copiar enlace directo

Identificador estable del recurso de multiview.

name
string
Copiar enlace directo

Nombre que se muestra al operador.

Layout
layout_id
string
Copiar enlace directo

Disposición de mosaicos seleccionada, por ejemplo 4-tiles.

inputs
array
Copiar enlace directo

Entradas de vídeo normalizadas y sus vinculaciones en ejecución.

Acceso
visibility
string
Copiar enlace directo

PRIVATE o PUBLIC.

Runtime
conference_id
string
Copiar enlace directo

Conferencia que proporciona la vista utilizada por el operador.

active
boolean
Copiar enlace directo

Indica si la instancia de multiview debe estar activa.

Respuesta: Crear Multiview
JSON
Copiar código
{
"_id": "6b0011223344556677889900",
"id": "6b0011223344556677889900",
"name": "Master control multiview",
"conference_id": "6b1011223344556677889900",
"layout_id": "4-tiles",
"visibility": "PRIVATE",
"overlay_settings": {},
"inputs": [
{
"id": "camera-a",
"name": "Camera A",
"source_kind": "INPUT_TYPE_SRT_SOFTWARE",
"source_id": "6b2011223344556677889900",
"participant_name": "Camera A",
"resolution": "1920x1080",
"video_codec": "libx264",
"video_bitrate": 1350,
"tile_index": 0,
"muted": false,
"hidden": false,
"volume": 1
}
],
"active": true,
"created": "2026-06-25T10:00:00.000Z",
"modified": "2026-06-25T10:00:01.000Z",
"success": true
}
POST
/api/multiview/update
Requiere token de API
POST
/api/multiview/getCount
Requiere token de API
POST
/api/multiview/getAll
Requiere token de API
POST
/api/multiview/getById
Requiere token de API
POST
/api/multiview/start
Requiere token de API
POST
/api/multiview/stop
Requiere token de API
POST
/api/multiview/join
Requiere token de API
POST
/api/multiview-public/getById
Endpoint público
POST
/api/multiview-public/getStat
Endpoint público
POST
/api/multiview-public/join
Endpoint público
DELETE
/api/multiview/remove
Requiere token de API