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

Streams

Usa Streams para crear conexiones con nombre de emisores y receptores en endpoints SRT o RTMP. Cada registro proporciona a las aplicaciones una identidad de conexión estable y ajustes multimedia reutilizables.

Qué haceCrear una conexión multimedia con nombre

Elige este módulo cuandoCada emisor o receptor necesita su propia identidad dentro de un servidor SRT o RTMP existente.

Usa otro módulo cuandoUsa Servidores SRT o Servidores RTMP para crear el endpoint de ingesta.

1Elige emisor o receptor2Define el endpoint3Usa la conexión
POST /api/streams/create
10 endpoints

Antes de empezar

Todos los métodos requieren un x-access-token válido. Crea primero el servidor SRT o RTMP relacionado y mantén coherentes los identificadores del servidor y del stream.

Qué puedes hacer

  • create, update, getAll, getCount y getById gestionan los registros de conexión.
  • start y stop controlan las acciones compatibles del ciclo de vida del stream.
  • getStreamInfo consulta la información de conexión.
  • setStreamInfo aplica la información de stream compatible.
  • remove elimina un registro de stream.

Flujo de ejemplo

  1. Crea un registro de emisor para el servidor SRT o RTMP previsto.
  2. Asigna el rol, el stream_id, los datos del host y los ajustes de audio necesarios.
  3. Entrega al emisor los datos de conexión generados.
  4. Usa getStreamInfo durante la configuración y la resolución de problemas.

Casos de uso habituales

  • Asignar una conexión dedicada a cada equipo de cámaras remoto.
  • Separar las identidades de emisor y receptor en un servidor de ingesta compartido.
  • Guardar ajustes de canales de audio para señales de contribución repetibles.

Límites y resolución de problemas

Los identificadores de stream duplicados o incoherentes pueden impedir la conexión prevista. Un registro de stream depende de su servidor principal y no puede corregir un emisor inaccesible. No expongas credenciales ni datos de conexión sin restricciones fuera del participante previsto.

Siguientes pasos

Conecta el emisor o receptor y consulta después las estadísticas de ejecución del servidor SRT o RTMP principal.

Receta de solución REST

Registrar y operar una fuente reutilizable

Crea una vez la identidad y conexión, inicia la fuente cuando sea necesario y consulta su información para automatización downstream.

  1. Crear el streamGuarda la identidad y el contrato de conexión revisados.POST /api/streams/create
  2. Iniciar la fuenteIníciala antes de conectar módulos downstream.POST /api/streams/start
  3. Consultar informaciónUsa los metadatos actuales en tu flujo de control.POST /api/streams/getStreamInfo

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.

POST
/api/streams/create
Requiere token de API

Crea una identidad de stream gestionada sobre un transporte SRT o RTMP. Guarda nombre, rol de emisor o receptor, stream ID, host opcional, recurso relacionado y metadatos de audio.

Hay un ejemplo de vMix Script para crear el stream desde un flujo de operador.

Ejemplos de solicitud

Elige una plantilla de emisor SRT, receptor SRT, emisor RTMP o stream con layout de audio guardado.

Casos de uso habituales

  • Asignar nombres a varios emisores que comparten un listener SRT.
  • Mantener una identidad estable de receptor para tráfico enrutado o PULL.
  • Guardar nombres de canales, layouts o el significado de las pistas junto con el stream.
Stream emisor SRT

Utiliza esta configuración cuando un servicio de escucha SRT aloje un flujo de un publicador que los operadores deban gestionar como un objeto independiente.

Stream emisor SRT
Copiar código
curl --request POST \
--url http://localhost/api/streams/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Main stage publisher",
"role_name": "publisher",
"stream_id": "publisher/main-stage/srt-main",
"entity_id": "680400000000000000000001",
"module_name": "MODULE_SRT_SERVERS",
"active": true
}'
Stream receptor SRT

Utiliza esta configuración cuando un flujo del receptor o un retorno deba conservar su propia identidad y, opcionalmente, quedar vinculado a un host.

Stream receptor SRT
Copiar código
curl --request POST \
--url http://localhost/api/streams/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Remote return receiver",
"role_name": "receiver",
"stream_id": "receiver/main-stage/return-feed",
"host": "198.51.100.24",
"entity_id": "680400000000000000000001",
"module_name": "MODULE_SRT_SERVERS",
"active": true
}'
Stream emisor RTMP

Utiliza esta configuración cuando la entidad de transporte asociada sea un servidor RTMP en lugar de un servicio de escucha SRT.

Stream emisor RTMP
Copiar código
curl --request POST \
--url http://localhost/api/streams/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "RTMP primary publish",
"role_name": "publisher",
"stream_id": "studio/live/program",
"entity_id": "680500000000000000000001",
"module_name": "MODULE_RTMP_SERVERS",
"active": true
}'
Stream con layout de audio guardado

Utiliza esta configuración para guardar la distribución y los nombres de los canales junto con el registro del flujo después de analizarlo.

Stream con layout de audio guardado
Copiar código
curl --request POST \
--url http://localhost/api/streams/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Commentary audio stream",
"role_name": "publisher",
"stream_id": "publisher/commentary/audio-main",
"entity_id": "680400000000000000000001",
"module_name": "MODULE_SRT_SERVERS",
"audio_settings": {
"streams": [
{
"id": 0,
"name": "Commentary",
"channel_layout": "mono",
"channels": [
{
"id": "FC",
"name": "Commentary"
}
]
}
]
},
"active": true
}'
Parámetros del cuerpo de la solicitud
Identidad
name
string
Copiar enlace directo

Etiqueta del panel: Nombre.

Nombre descriptivo del registro de flujo guardado.

role_name
string
Copiar enlace directo

Etiqueta del panel: Rol.

Entre los valores habituales del producto están publisher, receiver, pusher y puller.

stream_id
string
Copiar enlace directo

Identificador estable del flujo, guardado en relación con la entidad de transporte asociada.

host
string
Copiar enlace directo

Vinculación opcional a un host para mantener la identidad del flujo asociada a un par remoto concreto.

Enlace de transporte
entity_id
string
Copiar enlace directo

Identificador de la entidad de transporte asociada, por ejemplo, un servidor SRT o RTMP.

module_name
string
Copiar enlace directo

Familia del módulo asociada al registro del flujo. En la práctica, suele ser MODULE_SRT_SERVERS o MODULE_RTMP_SERVERS.

Metadatos
audio_settings
object
Copiar enlace directo

Distribución de audio opcional con nombres para las pistas y los canales.

Runtime
active
boolean
Copiar enlace directo

Etiqueta del panel: Habilitar después de crear.

Define si el registro del flujo debe quedar activo inmediatamente después de crearlo.

Crear stream
Copiar código
curl --request POST \
--url http://localhost/api/streams/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Main stage publisher",
"role_name": "publisher",
"stream_id": "publisher/main-stage/srt-main",
"entity_id": "680400000000000000000001",
"module_name": "MODULE_SRT_SERVERS",
"active": true
}'
Respuesta
Identidad
_id / id / name / role_name / stream_id / host
mixed
Copiar enlace directo

Identificadores y campos de identidad guardados para el flujo.

Enlace de transporte
entity_id / entityModel / module_name
mixed
Copiar enlace directo

Referencia al objeto de transporte que contiene o sirve el flujo.

Metadatos
stream_meta_data / audio_settings
mixed
Copiar enlace directo

Resultado guardado del análisis, información del códec y metadatos opcionales de asignación de canales.

Runtime
active / created / modified
mixed
Copiar enlace directo

Indicador de ejecución y marcas de tiempo gestionadas por el backend.

Resultado de la operación
success
boolean
Copiar enlace directo

Las respuestas correctas del modelo de flujo incluyen success: true como campo virtual.

Respuesta: Crear stream
JSON
Copiar código
{
"_id": "680600000000000000000001",
"id": "680600000000000000000001",
"name": "Main stage publisher",
"role_name": "publisher",
"host": "",
"stream_id": "publisher/main-stage/srt-main",
"entity_id": "680400000000000000000001",
"entityModel": "ServerModel",
"module_name": "MODULE_SRT_SERVERS",
"stream_meta_data": {
"codec_name": "h264",
"fps": "30/1"
},
"audio_settings": {
"streams": [
{
"id": 0,
"name": "Track-0",
"channel_layout": "stereo",
"channels": [
{
"id": "FL",
"name": "Left"
},
{
"id": "FR",
"name": "Right"
}
]
}
]
},
"created": "2026-03-24T08:45:00.000Z",
"modified": "2026-03-24T08:45:00.000Z",
"active": true,
"success": true
}
POST
/api/streams/getCount
Requiere token de API
POST
/api/streams/getAll
Requiere token de API
POST
/api/streams/getById
Requiere token de API
POST
/api/streams/update
Requiere token de API
POST
/api/streams/setStreamInfo
Requiere token de API
DELETE
/api/streams/remove
Requiere token de API
POST
/api/streams/start
Requiere token de API
POST
/api/streams/stop
Requiere token de API
POST
/api/streams/getStreamInfo
Requiere token de API