Skip to content

Recepción de MXL

MXL (Media eXchange Layer) es la capa de intercambio de la arquitectura DMF (Dynamic Media Facility): las funciones de multimedia vecinas — decodificadores, mezcladores, CG — escriben medios sin comprimir en un directorio compartido, y los consumidores los toman de allí sin red y sin copias. Mcaster lee ese directorio como una fuente de stream ordinaria: las pistas entran al procesamiento, se transcodifican y salen por los mismos medios que la señal de un satélite o de SRT.

Al igual que ST 2110, la entrada transporta medios sin comprimir, pero el transporte es otro: no multidifusión IP, sino archivos en un directorio de una máquina compartida. No hace falta ninguna preparación de red: basta una carpeta en la que escriban los publicadores.

Qué son un dominio y un flujo

El directorio en el que escriben las funciones de multimedia se llama dominio. Dentro de él, cada pista lógica es su propio subdirectorio de flujo con nombre UUID: 5fbec3b1-….mxl-flow. Un flujo lleva una descripción de sí mismo (flow_def.json, en formato NMOS), una cabecera con el estado del escritor y ranuras de datos; el lector sondea la cabecera y recoge los fotogramas a medida que aparecen. En un dominio puede haber cualquier número de escritores y lectores, sin conocerse entre sí.

Un dominio lleva un programa: hay un único flujo de vídeo y puede haber varios de audio. La entrada toma el primer flujo de vídeo y el primero de audio que encuentra; elegir un flujo por nombre no es posible en la versión actual.

Se leen dos tipos de medios:

  • video/v210 — vídeo sin comprimir de 10 bits 4:2:2 en empaquetado v210; el tamaño y la frecuencia de fotogramas provienen de la descripción del flujo.
  • audio/float32 — audio sin comprimir de coma flotante, un plano por canal.

Los demás formatos — vídeo con canal alfa (video/v210a), datos auxiliares ANC — se omiten con una anotación en el registro: su disposición todavía no se lee.

Configurar la entrada

Cree un stream y pulse + Añadir fuente en la pestaña Fuentes. Elija el protocolo MXL.

La entrada MXL: el dominio y el tiempo de espera del par

La entrada tiene dos campos:

  • Dominio MXL — la ruta al directorio del dominio en la máquina del streamer, por ejemplo /dev/shm/mxl. Es un directorio local, no una dirección de red: el streamer y los publicadores deben ver la misma carpeta.
  • Tiempo de espera del par (ms) — cuánto esperar fotogramas nuevos antes de declarar muerta la fuente. Por defecto, 30 segundos.

Las pistas sin comprimir no se segmentan por sí solas: como con 2110 y SDI, planifique un transcodificador — una salida H.264/AAC para la entrega OTT, o una salida RAW para SDI.

La capacidad se licencia

La captura de MXL se vende como la posición media_ingest de la tarifa y la limita la licencia, no la compilación: la sección de entrada existe en cualquier instalación, pero sin esa capacidad en la licencia sus campos están inactivos y resaltados con una explicación. El número de entradas mxl se cuenta por la configuración — una por cada stream con dicha entrada.

Cómo se comporta la entrada en funcionamiento

  • Borde en vivo. El anillo de ranuras es finito, y un lector rezagado pierde los fotogramas antiguos: la entrada salta a los recientes y continúa, y el hueco se ve como un salto en las marcas de tiempo. No es un error — un programa en vivo vale más que la continuidad.
  • Los fotogramas dañados se omiten. Un escritor puede marcar un fotograma como inválido o dejarlo inconcluso; ese fotograma nunca se convierte en pista del stream, la entrada simplemente sigue adelante.
  • Un escritor silencioso queda cubierto por el tiempo de espera del par: la entrada recibe un error y el stream se reinicia según las reglas comunes — igual que cualquier otra fuente.

Probar la entrada sin hardware

MXL no necesita ni tarjeta ni red de medios: un publicador de demostración viene con el SDK abierto. Clone dmf-mxl/mxl y compile las herramientas siguiendo docs/Building.md de ese repositorio — necesita mxl-gst-testsrc; las descripciones listas de flujos de prueba están en examples/flow-configs/ del mismo repositorio. Para un recorrido guiado de MXL en conjunto existe el taller mxl-hands-on.

El publicador escribe en el dominio un programa de prueba — barras SMPTE con reloj en marcha y un tono estéreo:

mkdir -p /dev/shm/mxl
mxl-gst-testsrc -d /dev/shm/mxl \
  -v examples/flow-configs/flow-video-v210.json \
  -a examples/flow-configs/flow-audio.json

El directorio del dominio debe ser visible tanto para el publicador como para la máquina con Mcaster: en una misma máquina es simplemente una ruta compartida; entre contenedores, un volumen montado.

Lo que verá en Mcaster:

  1. Cree un stream, pulse + Añadir fuente en la pestaña Fuentes y elija el protocolo MXL. Rellene Dominio MXL con la ruta — /dev/shm/mxl — y guarde el stream.
  2. En cuanto la entrada se abre, en la tarjeta del stream aparece un bloque de pistas entrantes: v210 1920×1080 y fltp 48 kHz — la recepción ha empezado.
  3. Active el transcodificador (H.264/AAC): junto a él aparece un bloque de pistas de salida, y el stream se abre por HLS en cualquier reproductor — barras, reloj corriendo, sonido.

Tarjeta del stream: v210 y fltp entrantes, H.264 y AAC salientes