Captura SDI¶
Panorama¶
La entrada SDI captura vídeo y audio desde los puertos SDI de las tarjetas DekTec. La señal entra en el sistema únicamente por un cable conectado a un puerto de la tarjeta, y lo que haya al otro extremo de ese cable — el control, un router de vídeo, un receptor de satélite — le da igual a la entrada. No se admiten tarjetas que no sean DekTec.
Tarjetas y estándares admitidos¶
Se admiten las tarjetas DekTec. Las pruebas se hacen sobre la DTA-2178 (HD y 12G hasta 3840×2160p50) y la DTA-2174B (HD). Otras tarjetas DekTec con el mismo driver no se han probado.
El estándar de la señal lo determina la propia tarjeta, y la entrada no distingue SD, HD, 3G y 12G-SDI: hacia arriba llegan cuadros con su propia autodescripción — tamaño, barrido, frecuencia como número racional. Un cambio de estándar en la línea es un reinicio normal de la captura, no un error: así se ve una conmutación en el router de vídeo.
La distribución de los puertos de una tarjeta la fija su variante de firmware, no el número del puerto. Qué tarjetas hay en la máquina, qué puertos tienen y qué señal hay en ellos lo muestra la sección Tarjetas de captura.
Las tarjetas Blackmagic (DeckLink), Magewell y demás compatibles con V4L no están admitidas por esta entrada.
Configurar la entrada¶
En el streamer con la tarjeta debe estar instalado el paquete dektec-bridge: trae el proceso de captura y el sondeador de tarjetas. Sin él la entrada falla con la causa «proceso de captura no disponible», véase más abajo.
Cree un stream, abra la pestaña Fuentes y pulse + Añadir fuente. El protocolo es SDI (DekTec).

La tarjeta se elige por su número de serie, no por su índice en el sistema: el índice cambia al cambiar tarjetas de sitio y al cambiar el orden de carga del driver, y el stream empezaría a capturar en silencio una señal ajena. La lista de tarjetas se recopila a partir de todos los streamers del clúster, y la opción nombra la tarjeta entera: modelo, variante de firmware y el streamer en el que está instalada.

En la lista de puertos están todos los puertos del parque a los que se puede enchufar un cable, agrupados por tarjeta: primero la tarjeta elegida y después las demás. De ella faltan tres clases de puerto, porque de ninguna de ellas hay nada que capturar:
- genlock — una entrada de referencia;
- el puerto virtual — no hay conector en absoluto;
- salida interna — el firmware conecta el puerto a un puerto vecino de la misma tarjeta.
Una fila del grupo de otra tarjeta cambia la tarjeta y el puerto a la vez: una entrada se mueve a la tarjeta vecina con una sola elección.
Un puerto de salida se queda en la lista con la etiqueta «no es entrada»: la tarjeta no siempre informa bien de la dirección, y un conector que existe en el soporte es mejor mostrarlo con etiqueta que esconderlo. Elegir ese puerto termina en el fallo «puerto ocupado», véase más abajo.
Un puerto ocupado lleva la etiqueta del stream que lo tomó y, si el proceso de captura de ese stream está colgado, también su estado: «Stream: tv1 · lo retiene un proceso colgado». Así un puerto atascado se distingue de uno ocupado con normalidad.

La lista es una ayuda, no una restricción: el número de serie y el puerto se pueden escribir a mano, y el formulario acepta tanto un número desconocido como un puerto de salida. Eso importa cuando la tarjeta aún no está instalada o está en otro streamer: la lista de tarjetas se actualiza una vez por minuto y puede ir con retraso. Si no hay lista alguna (el streamer calla o el sondeador no está instalado), los campos funcionan como campos de texto corrientes.
Los demás campos de la sección:
| Campo | Significado |
|---|---|
| Formato de píxel | uyvy422 (8 bits, por defecto) o v210 (10 bits). Diez bits cuestan el doble de ancho de banda dentro de la cadena y alrededor de un tercio más en el bus PCIe |
| Tiempo de espera de apertura, ms | cuánto esperar cuadros antes de dar la fuente por muerta; el mismo valor es la ventana de silencio del socket. Vacío son 30 s |
| Pista de marcas SCTE-104 | activada por defecto, ver abajo |
| Pistas de audio | el mapa del audio embebido, ver abajo |
No olvide Guardar: la edición de la entrada llega al servidor solo con el botón.
Un puerto no se puede asignar a dos streams: la configuración se rechaza, y el error nombra el stream que ya ocupa el puerto. Puertos distintos de una misma tarjeta funcionan de forma independiente: la exclusividad del driver actúa sobre el puerto, no sobre la tarjeta.
No hay con qué reproducir el vídeo en bruto de la tarjeta: mientras el stream no tenga pistas codificadas, HLS, DASH y el archivo quedarán vacíos. Para llenarlos, active el transcodificador.
La lista de pistas se muestra en la pestaña Configuración básica, en el bloque Contenido del flujo:

El códec nombra la disposición en el cable, no aquello en lo que se convertirá el stream: v210 es vídeo en bruto en el formato de píxel elegido, s32p es audio sin comprimir de 32 bits, scte104 es la pista de marcas. El enlace Transcodificar para reproducir en la web lleva a los ajustes del transcodificador.
Audio multicanal¶
El audio llega ya repartido en pistas: el mapa de pistas lo declara la sección de entrada, y del desembebido se encarga el proceso de captura. La posición de una pista en la lista es su número en el stream (a1, a2, …).
Una pista tiene tres campos:
- canales SDI — números del 1 al 16: el SDI lleva como máximo ocho pares, es decir, dieciséis canales. El orden de los números fija la disposición de canales de la pista;
- transporte — audio sin comprimir o una envoltura SMPTE 337: audio comprimido, por ejemplo AC-3 o Dolby E, empaquetado en un par de canales PCM;
- idioma — según ISO 639-2.
El idioma se declara, no se deduce de la señal: el SDI no lleva descriptores de idioma, y el único que conoce el idioma es quien repartió los programas entre los pares.
Una lista de pistas vacía no significa «no hay audio», sino el valor por defecto: una pista PCM estéreo del primer par.
El audio sin comprimir llega a 32 bits y se decodifica con el número de canales declarado. Una pista más ancha que estéreo se acepta honestamente, pero el codificador la pliega a estéreo — ese es el límite del transcodificador, no el de la entrada.
Bypass de AC-3 sobre SMPTE 337¶
Una pista con transporte smpte337 llega como cuadros AC-3 o E-AC-3 ya listos: la envoltura la quita el proceso de captura, y el servidor de medios ni analiza ni decodifica el flujo de bits de audio. Solo se admite una variante: SMPTE 337 codificado en dos canales. Esa pista debe declarar exactamente dos canales o la configuración se rechaza.
Así es como el 5.1 llega entero a la salida. Los huecos de una pista comprimida — silencio entre paquetes — son legítimos y no cuentan como errores.
El tipo de audio se declara, no se detecta a partir de los datos: un par que hoy lleva AC-3 y mañana silencio no debe cambiar la lista de pistas del stream.
Teletexto y subtítulos¶
Los datos auxiliares llegan en el VANC de cada cuadro, el área auxiliar por encima de la imagen, y la entrada los encamina a su destino.
El teletexto OP-47 entra en la cadena común de closed captions — por el mismo camino que el OP-47 de ST 2110 y con el mismo resultado: el teletexto y los subtítulos llegan a la salida.
El teletexto VBI importa para los sistemas de emisión SD heredados. En SD el teletexto no viaja en un paquete ANC sino en una línea de borrado — la zona en la que no se transmite imagen. La entrada envía esas líneas a la misma cadena que el OP-47, y a la salida se convierten en el mismo teletexto. Aquí no hay nada que configurar.
Los closed captions CEA-608/708 (CDP) los analiza y los cuenta la entrada, pero todavía no los publica como una pista aparte: el portador de los closed captions en la cadena es el SEI de la salida codificada, y la inserción ahí es común a todas las entradas y aún no está hecha. El contador existe para que «no hay closed captions en la señal» y «no hay dónde entregar los closed captions» no se vean iguales desde fuera.
Marcas SCTE-104¶
Los paquetes SCTE-104 del VANC salen en una pista de aplicación aparte — en bruto, con la marca de tiempo del cuadro que los transporta. La entrada no analiza su contenido y no los convierte en SCTE-35: el procesamiento de marcas — sustitución, compensación, inserción — todavía no existe en Mcaster.
La pista está activada por defecto y existe desde el primer cuadro, aunque todavía no haya marcas. Si apareciera con la primera marca, la lista de pistas del stream cambiaría justo al principio del bloque publicitario y el empaquetado se reiniciaría. Así funciona también el MPEG-TS: el PID de las marcas se declara en la tabla mucho antes del primer mensaje. El precio del valor por defecto es una pista vacía en los streams que no llevan marcas.
Qué se ve cuando algo va mal¶
El estado de la entrada está en la pestaña Fuentes, en el bloque Salud de la fuente.

El bloque muestra el estado, la dirección de la entrada con la forma sdi://<número de serie>/<puerto> y la lista de pistas. En caso de fallo, en lugar de «Funcionando» aparece la causa de la tabla siguiente, y cada causa exige su propia acción:
| Causa | Qué ha pasado | Qué hacer |
|---|---|---|
| sin señal | en el puerto no hay señal detectable | revisar el cable y la fuente |
| puerto ocupado | el driver denegó el puerto | 1) mirar la dirección del puerto en la sección Tarjetas de captura: un puerto de salida responde con el mismo código; 2) comprobar si el propio proceso de captura se ha colgado; 3) solo entonces buscar un proceso ajeno |
| proceso de captura no disponible | el binario no está o no arranca | instalar el paquete dektec-bridge |
| fallo del dispositivo | el proceso de captura salió con un código distinto de cero sin significado propio: número de serie desconocido, puerto sin la capacidad necesaria, fallo de configuración | la etapa la nombra el evento de arranque en el registro |
| el proceso no muere | no termina ni al cerrarse su entrada estándar ni con SIGKILL |
señal de una tarjeta atascada; se resuelve en el host |
| proceso matado desde fuera | la captura la mató el OOM killer, systemd o una persona | averiguar quién terminó el proceso en vez de arreglar el stream |
| versiones desincronizadas | el proceso de captura envía datos, pero el servidor de medios no los analiza | las versiones de dektec-bridge y del servidor de medios divergieron; se despliegan juntas |
Aquí no hay fallos irreparables: tras cualquiera de ellos la entrada intenta levantarse de nuevo, con un intervalo creciente entre intentos, y se levanta sola en cuanto la causa desaparece.
Caso aparte es la pérdida de señal en marcha. El proceso de captura entonces no sale: sigue entregando cuadros a su ritmo, repitiendo el último cuadro y silencio, y para la comprobación de vitalidad una fuente con el cable cortado se ve perfectamente sana. Por eso la entrada, al ver un «sin señal» persistente, deja de entregar cuadros — de lo contrario un cuadro congelado saldría al aire hasta que alguien interviniera. A partir de ahí toma el relevo la fuente de reserva, y el siguiente reintento levanta la captura en cuanto la señal vuelve.
El panel muestra la causa actual, no el historial. El historial está en los contadores de Prometheus con el prefijo stream_input_sdi_. Siempre están:
- el estado de la línea;
- los reinicios del proceso de captura;
- las pérdidas en la frontera entre procesos, desde ambos lados de la frontera.
La opción de licencia «contadores ampliados» añade los paquetes truncados y no analizados del proceso de captura y el desglose del VANC.
Qué no hace el módulo¶
- No envía señal hacia una tarjeta: esto es una entrada, y Mcaster todavía no tiene salida a SDI.
- No decodifica AC-3 ni Dolby E a PCM.
- No convierte SCTE-104 en SCTE-35.
- No publica una pista de closed captions CEA-608/708.
- No vigila la salud de la tarjeta: la temperatura, las revoluciones y la distribución de los puertos las muestra la sección Tarjetas de captura.
Qué sigue¶
- Transcodificar el flujo — el escalón tras el cual una señal en bruto se reproduce y se graba.
- Tarjetas de captura — qué hay en las máquinas y qué hay en los puertos.
- Añadir una entrada de reserva — una segunda fuente y las reglas de conmutación.
- Errores de entrada — qué significan los contadores cuando una señal se degrada.