media server logo
Mostrar u ocultar la navegación
Inicio de Callaba

Adaptadores NDI

Usa Adaptadores NDI para publicar una fuente SRT, RTMP o de videollamada como salida NDI con nombre propio para un mezclador, sistema de gráficos, multiviewer o sala de control.

Qué hacePublicar una fuente como salida NDI

Elige este módulo cuandoUna fuente SRT, RTMP o de invitado WebRTC debe aparecer como salida NDI con nombre propio.

Usa otro módulo cuandoUsa Dispositivos NDI detectados si la fuente ya existe en la red NDI.

1Elige la fuente2Nombra la salida NDI3Úsala downstream
POST /api/restream/create
9 endpoints

Antes de empezar

Todos los métodos requieren un x-access-token válido. Configura primero la red NDI, crea la fuente upstream SRT, RTMP o de videollamada y conserva su ID.

Qué puedes hacer

  • create y update seleccionan la entrada y asignan el nombre del dispositivo NDI.
  • getAll, getCount y getById consultan los adaptadores.
  • start y stop controlan la publicación NDI.
  • getStat comprueba el proceso en ejecución.
  • remove elimina un adaptador.

Flujo de ejemplo

{
  "restream_name": "Remote camera to NDI",
  "input": {
    "input_type": "INPUT_TYPE_SRT_SOFTWARE",
    "input_module_id": "SRT_SERVER_ID"
  },
  "output": {
    "output_type": "OUTPUT_TYPE_NDI_DEVICE",
    "output_settings": {
      "ndi_device_name": "Remote Camera 1"
    }
  },
  "module_name": "MODULE_NDI_ADAPTERS",
  "active": true
}

Crea el adaptador, inícialo, comprueba sus estadísticas de ejecución y selecciona después Remote Camera 1 en el sistema NDI receptor.

Casos de uso habituales

  • Incorporar una cámara de campo SRT a una sala de control basada en NDI.
  • Exponer la señal RTMP de un recinto a una estación de gráficos NDI.
  • Publicar un invitado remoto de una videollamada como fuente NDI seleccionable por separado.

Límites y resolución de problemas

El recurso de entrada debe existir y proporcionar una señal válida. Los nombres de dispositivo deben ser estables y suficientemente claros para los operadores. Guardar un adaptador no significa que esté en ejecución; comprueba getStat antes de usarlo en emisión.

Siguientes pasos

Confirma la salida en el sistema NDI receptor y conéctala después al flujo de mezcla, supervisión o grabación correspondiente.

Receta de solución REST

Conectar una fuente NDI a un flujo de entrega

Crea un adaptador desde una fuente NDI verificada hacia la salida necesaria, inícialo y comprueba el proceso.

  1. Crear el puenteElige la entrada NDI y el protocolo y procesamiento del destino.POST /api/restream/create
  2. Iniciar el adaptadorInicia cuando la fuente NDI y el destino estén disponibles.POST /api/restream/start
  3. Verificar el procesoConsulta las estadísticas antes de depender de la salida.POST /api/restream/getStat

Una respuesta de creación correcta confirma la configuración, no el estado del medio. Inicia el recurso y comprueba sus estadísticas antes de enviar tráfico de producción.

Flujo de varios módulos

Configurar NDI, verificar la red y publicar una salida NDI

Aplica la configuración de descubrimiento, confirma los dispositivos NDI previstos y convierte después una fuente gestionada compatible en una salida NDI con nombre.

  1. Aplicar los ajustes NDIDefine nombre de máquina, servidores, IP explícitas o la configuración JSON revisada.POST /api/devices/updateNDIConfiguration
  2. Verificar el inventarioLista la vista actual de red y confirma nombres y direcciones.POST /api/devices/getAll
  3. Comprobar actividadConfirma que el dispositivo seleccionado está activo antes de depender de la ruta.POST /api/devices/getStat
  4. Crear el publicador NDISelecciona una entrada gestionada compatible y configura el nombre y control de OUTPUT_TYPE_NDI_DEVICE.POST /api/restream/create
  5. Iniciar la entrega NDIInicia el adaptador cuando la fuente y la red NDI estén disponibles.POST /api/restream/start
  6. Verificar el procesoConsulta bitrate, FPS, velocidad y progreso antes de entregar el nombre NDI.POST /api/restream/getStat

Un dispositivo detectado demuestra visibilidad de red; su id no es la entrada del adaptador. Los ejemplos publicados aceptan SRT gestionado, RTMP GoPro o participantes de conferencia y publican OUTPUT_TYPE_NDI_DEVICE.

POST
/api/restream/create
Requiere token de API

Publica una fuente gestionada en la red como dispositivo NDI para mezcladores, sistemas gráficos u otros equipos de producción.

El puente utiliza los campos de una retransmisión con salida de dispositivo NDI y module_name: MODULE_NDI_ADAPTERS. Hay un ejemplo de vMix Script para iniciarlo desde un flujo de operador.

Ingesta gestionada hacia NDI

Usa este preajuste cuando un servidor SRT administrado deba aparecer como una salida NDI en la nube con nombre propio.

Servidor SRT a dispositivo NDI

Es el puente más directo para que un operador convierta un punto de entrada SRT existente en un dispositivo NDI.

Servidor SRT a dispositivo NDI
Copiar código
curl --request POST \
--url http://localhost/api/restream/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"restream_name": "Camera 1 to Cloud NDI via SRT",
"input": {
"input_type": "INPUT_TYPE_SRT_SOFTWARE",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"input_module_id": "66015d2997300f9385d32c00",
"input_stream_url": "",
"input_stream_listen_port": {},
"input_settings": {},
"input_stream_id": "",
"entity_name": "Camera 1 to Cloud NDI via SRT",
"module_name": "MODULE_RESTREAM"
},
"output": {
"output_type": "OUTPUT_TYPE_NDI_DEVICE",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"output_stream_url": "",
"output_stream_listen_port": {},
"output_settings": {
"ndi_device_name": "Cloud NDI Camera 1",
"timestamp_offset": 0,
"av_stream_control_mode": "AV_STREAM_CONTROL_VIDEO_AUDIO"
},
"output_stream_key": "",
"entity_name": "Camera 1 to Cloud NDI via SRT",
"module_name": "MODULE_RESTREAM"
},
"module_name": "MODULE_NDI_ADAPTERS",
"active": true
}'
Servidor RTMP a dispositivo NDI

Resulta útil para fuentes de hardware o software que ya terminan en RTMP dentro de la plataforma.

Servidor RTMP a dispositivo NDI
Copiar código
curl --request POST \
--url http://localhost/api/restream/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"restream_name": "GoPro RTMP to Cloud NDI",
"input": {
"input_type": "INPUT_TYPE_RTMP_GOPRO",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"input_module_id": "66015d2997300f9385d32c10",
"input_stream_url": "",
"input_stream_listen_port": {},
"input_settings": {},
"input_stream_id": "",
"entity_name": "GoPro RTMP to Cloud NDI",
"module_name": "MODULE_RESTREAM"
},
"output": {
"output_type": "OUTPUT_TYPE_NDI_DEVICE",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"output_stream_url": "",
"output_stream_listen_port": {},
"output_settings": {
"ndi_device_name": "Cloud NDI GoPro",
"timestamp_offset": 0,
"av_stream_control_mode": "AV_STREAM_CONTROL_VIDEO_AUDIO"
},
"output_stream_key": "",
"entity_name": "GoPro RTMP to Cloud NDI",
"module_name": "MODULE_RESTREAM"
},
"module_name": "MODULE_NDI_ADAPTERS",
"active": true
}'
Participante en tiempo real a NDI

Usa este preajuste para exponer la señal de un participante de una videollamada en un entorno de producción compatible con NDI.

Participante de conferencia a dispositivo NDI

Es la variante del mismo patrón de adaptador destinada a conferencias.

Participante de conferencia a dispositivo NDI
Copiar código
curl --request POST \
--url http://localhost/api/restream/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"restream_name": "Speaker feed to Cloud NDI",
"input": {
"input_type": "INPUT_TYPE_MODULE_CONFERENCES_PARTICIPANT",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"input_module_id": "66015d2997300f9385d32c20",
"input_stream_url": "",
"input_stream_listen_port": {},
"input_settings": {},
"input_stream_id": "",
"entity_name": "Speaker feed to Cloud NDI",
"module_name": "MODULE_RESTREAM"
},
"output": {
"output_type": "OUTPUT_TYPE_NDI_DEVICE",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"output_stream_url": "",
"output_stream_listen_port": {},
"output_settings": {
"ndi_device_name": "Cloud NDI Speaker",
"timestamp_offset": 0,
"av_stream_control_mode": "AV_STREAM_CONTROL_VIDEO_AUDIO"
},
"output_stream_key": "",
"entity_name": "Speaker feed to Cloud NDI",
"module_name": "MODULE_RESTREAM"
},
"module_name": "MODULE_NDI_ADAPTERS",
"active": true
}'
Parámetros del cuerpo de la solicitud
Identidad
restream_name
string
Copiar enlace directo

Etiqueta en el panel: Nombre del adaptador.

Nombre descriptivo de la tarea del adaptador NDI.

Origen
input.input_type
string
Copiar enlace directo

Etiqueta en el panel: Entrada de origen.

En ejecución se admiten entradas de servidores SRT administrados, de servidores RTMP administrados y de participantes de conferencias.

input.input_module_id
string
Copiar enlace directo

Identificador de la entidad de origen seleccionada en el formulario de creación.

Destino
output.output_type
string
Copiar enlace directo

Etiqueta en el panel: Salida de destino.

Este módulo fija el tipo de salida en OUTPUT_TYPE_NDI_DEVICE.

output.output_settings.ndi_device_name
string
Copiar enlace directo

Etiqueta en el panel: Nombre del dispositivo NDI®.

Nombre del dispositivo de salida NDI en la nube que se va a crear.

output.output_settings.timestamp_offset
integer
Copiar enlace directo

Etiqueta en el panel: Desplazamiento de marca de tiempo (ns).

Ajuste opcional de la marca de tiempo, expresado en nanosegundos.

output.output_settings.av_stream_control_mode
string
Copiar enlace directo

Etiqueta en el panel: Control del flujo AV.

Determina si el adaptador publica audio, vídeo o ambos.

Runtime
module_name
string
Copiar enlace directo

La interfaz guarda esta tarea como MODULE_NDI_ADAPTERS, aunque utiliza las rutas de restream del backend.

active
boolean
Copiar enlace directo

Etiqueta en el panel: Activar al crear.

Determina si el adaptador comienza en estado activo.

Crear adaptador NDI
Copiar código
curl --request POST \
--url http://localhost/api/restream/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"restream_name": "Camera 1 to Cloud NDI via SRT",
"input": {
"input_type": "INPUT_TYPE_SRT_SOFTWARE",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"input_module_id": "66015d2997300f9385d32c00",
"input_stream_url": "",
"input_stream_listen_port": {},
"input_settings": {},
"input_stream_id": "",
"entity_name": "Camera 1 to Cloud NDI via SRT",
"module_name": "MODULE_RESTREAM"
},
"output": {
"output_type": "OUTPUT_TYPE_NDI_DEVICE",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"output_stream_url": "",
"output_stream_listen_port": {},
"output_settings": {
"ndi_device_name": "Cloud NDI Camera 1",
"timestamp_offset": 0,
"av_stream_control_mode": "AV_STREAM_CONTROL_VIDEO_AUDIO"
},
"output_stream_key": "",
"entity_name": "Camera 1 to Cloud NDI via SRT",
"module_name": "MODULE_RESTREAM"
},
"module_name": "MODULE_NDI_ADAPTERS",
"active": true
}'
Respuesta
Identidad
_id / id / restream_name
mixed
Copiar enlace directo

Identificadores y nombre guardado del adaptador.

Origen
input[]
array
Copiar enlace directo

Definición de origen guardada para el adaptador.

Destino
output[]
array
Copiar enlace directo

Definición de salida NDI guardada para el adaptador.

Runtime
module_name / active / created / modified
mixed
Copiar enlace directo

Identificador del módulo, estado activo y marcas de tiempo administradas por el backend.

Resultado de la operación
success
boolean
Copiar enlace directo

El modelo incluye success: true en las respuestas correctas.

Respuesta: Crear adaptador NDI
JSON
Copiar código
{
"_id": "67f200000000000000000001",
"id": "67f200000000000000000001",
"restream_name": "Camera 1 to Cloud NDI via SRT",
"input": [
{
"_id": "67f200000000000000000010",
"id": "67f200000000000000000010",
"input_type": "INPUT_TYPE_SRT_SOFTWARE",
"input_module_id": "66015d2997300f9385d32c00",
"module_name": "MODULE_RESTREAM"
}
],
"output": [
{
"_id": "67f200000000000000000020",
"id": "67f200000000000000000020",
"output_type": "OUTPUT_TYPE_NDI_DEVICE",
"output_settings": {
"ndi_device_name": "Cloud NDI Camera 1",
"timestamp_offset": 0,
"av_stream_control_mode": "AV_STREAM_CONTROL_VIDEO_AUDIO"
},
"module_name": "MODULE_RESTREAM"
}
],
"module_name": "MODULE_NDI_ADAPTERS",
"active": true,
"created": "2026-03-24T11:00:00.000Z",
"modified": "2026-03-24T11:00:00.000Z",
"success": true
}
POST
/api/restream/getCount
Requiere token de API
POST
/api/restream/getAll
Requiere token de API
POST
/api/restream/getById
Requiere token de API
POST
/api/restream/update
Requiere token de API
POST
/api/restream/start
Requiere token de API
POST
/api/restream/stop
Requiere token de API
DELETE
/api/restream/remove
Requiere token de API
POST
/api/restream/getStat
Requiere token de API