Flujos SPTS¶
SPTS (Single Program Transport Stream) es un flujo MPEG-TS con un solo programa; es la unidad básica de procesamiento de Perfect Streamer. El tipo de flujo — SPTS o MPTS — se selecciona al crearlo y no puede modificarse posteriormente. Para un flujo SPTS se selecciona además el tipo de contenido (valores tal como aparecen en la interfaz): Default (audio + video), Audio only (sonido sin vídeo, canales de radio) o Video only.
Se admiten los flujos cifrados (con scrambling): el scrambling se detecta automáticamente y, mientras dura, se suspenden las comprobaciones de los flujos elementales. El ajuste «Canal cifrado» declara el flujo permanentemente cifrado y desactiva la detección automática.
Los requisitos generales del flujo de entrada se enumeran en Requisitos del flujo de entrada; los protocolos de recepción y de transmisión, en la sección Planificación y protocolos de transmisión de datos. El procesamiento de los multiplex se describe en Flujos MPTS. La creación y la configuración de los flujos se realizan en la interfaz web (Flujos).
Pipeline de procesamiento¶
Pipeline del flujo SPTS: entradas, procesamiento a nivel de flujo (conmutador de entradas, filtro TS, analizador, nivelación de la tasa de bits, sincronizador), subsistema OTT / DVR y salidas.¶
Todas las entradas del flujo convergen en el conmutador de entradas; a continuación el flujo atraviesa las etapas sucesivas de procesamiento:
Conmutador de entradas — selecciona la fuente activa y conmuta el flujo a la entrada de reserva en caso de fallo (Redundancia de fuentes).
Filtro TS — filtrado y modificación opcionales del MPEG-TS (Filtrado MPEG-TS, Modificación del flujo).
Analizador — comprobación continua de la validez y medición del flujo (Analizador); según su veredicto, el conmutador de entradas declara la fuente en fallo. Los datos del analizador los utilizan también el mosaico (Mosaico, se desactiva con el ajuste «Generar mosaico»), la importación de EPG y el decodificador de subtítulos.
Nivelación de la tasa de bits — relleno opcional hasta una tasa de bits constante y corrección del intervalo PAT/PMT (Control de la tasa de bits).
Sincronizador — emisión de los paquetes al ritmo del PCR con compensación del jitter de red (Sincronización). Aquí mismo el generador de EIT inserta las tablas de la guía de programación (Generador EIT).
Desde la salida del sincronizador el flujo se distribuye a todas las salidas: protocolos de transporte (Protocolos Peer de transmisión fiable), grabación en archivo, multiplexor MPTS (Multiplexor), transcodificador (Transcodificadores), así como al subsistema OTT / DVR (OTT y DVR). Un flujo SPTS también puede tener como fuente un programa concreto de un multiplex: la entrada demultiplexora (tipo demuxer) lo extrae de un flujo MPTS o de un receptor DVB por el número de programa (Demultiplexor).
Redundancia de fuentes¶
Un flujo puede tener varias entradas, pero solo una está activa en cada momento. El orden de las entradas en la lista determina la prioridad: la primera es la principal, las demás son de reserva. Si la entrada activa se declara en fallo, el flujo conmuta a la siguiente de la lista; después de la última entrada el recorrido continúa por la primera. Una entrada puesta en pausa no se tiene en cuenta al conmutar.
El fallo lo determina el analizador: una entrada se considera en fallo si el flujo no supera la comprobación de validez o si no llegan datos durante más tiempo que el tiempo de espera configurado. El funcionamiento del flujo en una entrada de reserva queda registrado mediante una alerta (Alertas (alerter)).
Los ajustes de conmutación se encuentran en la pestaña «Flujo» del editor de flujo (Configurar flujo):
- «Tiempo de espera del flujo (s)»
Tiempo sin flujo de entrada válido tras el cual se realiza la conmutación a la siguiente entrada. Por defecto, 30 segundos.
- «Intervalo de comprobación (s)»
Periodo de recomprobación de las fuentes. Por defecto, 60 segundos.
- «Recomprobar la entrada principal»
Mientras el flujo funciona en una entrada de reserva, las entradas situadas más arriba en la lista se vuelven a comprobar con el intervalo de comprobación. En cuanto una fuente de mayor prioridad vuelve a ser válida, el flujo regresa a ella. Activado por defecto.
Filtrado MPEG-TS¶
Por defecto el flujo se transmite tal cual. El filtrado se aplica en dos niveles: las reglas de PID, por separado en cada entrada, y los filtros de tablas, a nivel de flujo.
Las reglas de PID se configuran en la pestaña «MPEG-TS PID» de la ventana de la entrada (Editor de entrada y salida):
- «Aceptar PID (lista blanca)»
Lista de los PID permitidos. Si la lista está vacía, se permite todo salvo lo prohibido por la lista negra.
- «Rechazar PID (lista negra)»
Lista de los PID prohibidos. Un PID indicado a la vez en ambas listas se rechaza.
Tras el filtrado, la PMT se regenera según la composición real de los flujos elementales. Las reglas de PID se aplican antes de la disposición automática de PID (Disposición automática de PID), si está activada.
Los filtros de nivel de flujo se encuentran en la pestaña «MPEG-TS» del editor de flujo, sección «Filtros» (todos desactivados por defecto):
- «Limpiar tablas innecesarias»
Elimina los datos de servicio ajenos al programa y los flujos elementales de tipos desconocidos; los flujos de tipos conocidos (vídeo, audio, teletexto, subtítulos) y las tablas PAT/PMT se conservan. Las tablas individuales (SDT, EIT, NIT, TDT, CAT) se controlan mediante sus propios filtros.
- «Eliminar CAT / ECM / EMM»
Elimina las tablas y los mensajes de los sistemas de acceso condicional (CAS), incluidos los descriptores CA de la PMT — por ejemplo, para limpiar los restos de CAS tras el descifrado.
- «Eliminar EIT»
Elimina las tablas de la guía de programación de la fuente. Por defecto la EIT pasa de forma transparente.
- «Eliminar NIT», «Eliminar TDT»
Eliminan las tablas de red y de marcas de tiempo de la fuente.
- «Eliminar teletexto», «Eliminar subtítulos»
Eliminan los flujos de teletexto y de subtítulos DVB junto con sus entradas en la PMT.
- «Eliminar la SDT original» (sección «SDT»)
Elimina la tabla de descripción de servicio de la fuente — por ejemplo, cuando el flujo se envía a un multiplexado posterior. Al asignar un nombre de servicio propio (Modificación del flujo), la SDT original se sustituye automáticamente y no es necesario activar este filtro por separado.
Nota
La eliminación de las tablas obligatorias (SDT, NIT, TDT, EIT, CAT) infringe los requisitos de TR 101 290 sobre su presencia en el flujo — se trata de una decisión consciente del operador, apropiada, por ejemplo, cuando el flujo se envía a un multiplexado posterior. Además, cualquier filtrado modifica la composición de los paquetes del flujo; sobre la influencia en la precisión del PCR, véase Control de la tasa de bits.
Modificación del flujo¶
Los datos de servicio propios se definen en la sección «SDT» de la pestaña «MPEG-TS». La generación de la tabla se activa mediante el campo «Nombre del servicio» (y también con la generación activa de EIT a partir del EPG): si la fuente no tiene SDT, la tabla se genera; si la tiene, se sustituye por la generada. Los campos «Nombre del proveedor» e «Idioma» rellenan los campos correspondientes de la tabla generada. El ajuste «ID de red» define el identificador de red para las tablas EIT generadas cuando la fuente no comunica un identificador de red propio; si la fuente lo incluye, se utiliza ese.
El número de programa se reasigna en la sección «Número de programa»: active «Cambiar el número de programa» y defina «Nuevo número de programa». Las tablas PAT y PMT se regeneran con el nuevo número; la SDT y la EIT también se vuelven a generar.
«Fijar el intervalo PAT/PMT» — regenera la PAT/PMT y las inserta con un intervalo conforme a TR 101 290. Se aplica a las fuentes con tablas escasas o irregulares.
La reasignación de los PID y de los idiomas se realiza en la entrada, pestaña «MPEG-TS PID» de la ventana de la entrada:
- «Reasignar PID»
Pares «De PID» / «A PID» — sustitución de los identificadores de los flujos elementales, por ejemplo para adecuar el flujo al plan de PID de la red. Con la disposición automática de PID (Disposición automática de PID) activada, estos pares no surten efecto.
- «Reasignar el idioma del audio»
Pares «PID de audio» / «Nuevo idioma» — sustitución del idioma de la pista de audio en la PMT.
La generación de EIT a partir de una fuente EPG externa se activa en la sección «Generar EIT a partir del EPG» de la pestaña «Flujo»: se seleccionan «Fuente EPG» y «Canal EPG», y en el flujo se insertan tablas EIT con la guía de programación (Generador EIT). La operación inversa es el ajuste «Extraer la EIT a la base de datos EPG», que exporta la guía de programación del flujo a la base EPG del nodo (Importación de EPG/XMLTV).
En las entradas que reciben el flujo de transporte original está disponible el descifrado BISS por software: en la entrada se define una clave BISS-1 o BISS-E y el flujo se descifra antes del análisis y del procesamiento posterior. La recepción de servicios cifrados desde un receptor DVB (CAM, BISS a nivel de adaptador) se describe en Receptor DVB.
Disposición automática de PID¶
De forma predeterminada, los identificadores de los flujos elementales pasan de la fuente al flujo de salida sin cambios, por lo que al conmutar a una entrada de reserva la disposición de PID en la salida sigue a la fuente. La disposición automática asigna los PID por sí misma, con la misma regla para cualquier entrada: el plan de PID del flujo de salida no varía sea cual sea la fuente activa en cada momento.
El modo solo está disponible para SPTS y se activa en la sección «MPEG-TS» de la pestaña «MPEG-TS» del editor de flujo:
- «Disposición automática de PID»
Activa el modo.
- «PID base»
El primer PID de la ventana: de 32 a 8127, 32 de forma predeterminada. El límite inferior sitúa la ventana fuera del rango reservado a las tablas PSI/SI; el superior mantiene toda la ventana por debajo del PID de los paquetes nulos.
El programa se renumera en una ventana de 64 PID que comienza en el PID base:
PID |
Función |
|---|---|
base |
PMT |
base + 1 |
vídeo |
a continuación |
pistas de audio |
a continuación |
los demás flujos elementales: teletexto, subtítulos DVB, datos, SCTE-35 |
a continuación |
PCR, si no se transporta en uno de los flujos indicados |
a continuación |
ECM: primero según los descriptores de nivel de programa y después según los de cada flujo |
desde el final de la ventana hacia abajo |
EMM |
Dentro de cada grupo se conserva el orden de la PMT original. Si el programa no tiene vídeo, la disposición se compacta: la primera pista de audio va inmediatamente después de la PMT. Los EMM se asignan desde el final de la ventana, porque la CAT se analiza con independencia de la PMT y puede llegar antes: sus direcciones no deben depender del número de flujos elementales.
Las tablas PAT, PMT y CAT se reconstruyen para la nueva disposición. SDT, NIT, EIT y TDT no se modifican: no contienen referencias a PID.
Qué tener en cuenta al activar el modo:
El modo activa forzosamente el filtrado MPEG-TS, por lo que los PID no declarados en la PMT y la CAT dejan de salir. Un flujo que dependía del tránsito de PID no declarados los perderá.
La reasignación manual de PID en las entradas no surte efecto y se ignora, con una advertencia en el registro. La interfaz web oculta esos campos mientras el modo está activo; los pares guardados no se pierden y vuelven al desactivarlo.
Las listas de aceptación y rechazo de PID siguen funcionando y se aplican antes de la renumeración: solo los flujos elementales supervivientes obtienen una posición y no quedan huecos en la ventana (Filtrado MPEG-TS).
El modo no afecta a la entrada de transcodificador (Transcodificadores) ni a la entrada del generador de prueba (Flujos de prueba): allí el plan de PID lo construye el codificador o el generador, por lo que sus propios campos PMT PID siguen disponibles.
Si el programa no cabe en la ventana, no se realiza renumeración alguna: la disposición sigue siendo la original y se escribe una advertencia en el registro; nunca se emite un flujo renumerado a medias.
El cambio de cualquiera de los dos ajustes se aplica sobre la marcha: el flujo en sí no se reinicia, pero sus entradas y salidas se vuelven a levantar, unos segundos de resincronización.
En las estadísticas del flujo, el bloque «Información de medios — origen» muestra los PID que han llegado a la entrada, mientras que «Información de medios — resultado» y la tabla de tasas de bits por PID muestran los asignados; con el modo activado, la discrepancia entre ambos es normal.
La disposición automática de PID no guarda relación con la asignación de PID en el multiplexor MPTS (Asignación de PID): se trata de un ajuste independiente de la entrada muxer.
Control de la tasa de bits¶
El modo de control de la tasa de bits se define mediante el campo «Modo de tasa de bits» de la pestaña «MPEG-TS» (valores tal como aparecen en la interfaz):
- Original (por defecto)
El flujo se transmite sin modificaciones; las marcas PCR de la fuente no se recalculan.
- VBR
Elimina los paquetes NULL de la fuente, lo que minimiza la tasa de bits. Resulta adecuado cuando el flujo se utiliza únicamente para difusión OTT o para tránsito. En este modo las marcas PCR no se recalculan, por lo que no se garantiza la precisión del PCR según TR 101 290 en la salida.
- CBR (auto stuffing)
Nivela la tasa de bits insertando paquetes NULL (stuffing) hasta un valor constante. La tasa de bits objetivo se determina automáticamente: se fija unos segundos después de la activación, se aumenta ante un exceso sostenido y se reduce gradualmente si el pico del contenido permanece mucho tiempo por debajo del objetivo. El cambio de objetivo no interrumpe la emisión del flujo.
- CBR (explicit stuffing)
Lo mismo, pero la tasa de bits objetivo se define explícitamente mediante el campo «Tasa de bits de relleno (kbps)». Establezca un valor con margen por encima de la tasa de bits real del contenido.
En los modos CBR las marcas PCR se recalculan a partir de los bytes realmente transmitidos, por lo que la salida cumple los requisitos de TR 101 290 sobre la precisión del PCR. Además, con el relleno activo se mantiene en la salida una frecuencia de repetición del PCR dentro de la norma incluso en fotogramas de vídeo largos. En este caso el analizador mide precisamente el flujo emitido y nivelado (Analizador).
Cuándo se necesita CBR. Cualquier operación que inserte o elimine paquetes — los filtros de tablas y de PID, la generación de SDT y EIT, la corrección del intervalo PAT/PMT, el cambio del número de programa, así como el propio modo VBR — desplaza la posición del contenido respecto a sus marcas PCR. Si el receptor del flujo exige conformidad con TR 101 290, por ejemplo en la difusión DVB, active el modo CBR: el relleno enmascara esos cambios mediante el recálculo del PCR. Para un flujo situado después del transcodificador, active el modo CBR en el flujo receptor (PCR y tasa de bits del flujo de salida).
El estado actual del relleno — la tasa de bits objetivo y la velocidad de inserción de paquetes NULL — se muestra en los datos de la entrada activa de la página del flujo (Flujos, sección «Relleno»; la sección solo es visible mientras el relleno está activo).
Sincronización¶
El sincronizador emite los paquetes hacia las salidas al ritmo de las marcas PCR de la fuente, por lo que el flujo de entrada debe contener PCR válidos. Entre la recepción y la emisión, el flujo se retiene en un búfer de jitter que suaviza la irregularidad de la llegada de los paquetes desde la red.
El búfer se configura por separado en cada entrada (ventana de la entrada, Editor de entrada y salida; ajustes adicionales, nombres tal como aparecen en la interfaz):
- Auto jitter buffer
Selección automática del retardo según el tipo de entrada: las entradas TCP y HLS utilizan un búfer ampliado; las demás, el estándar. Activado por defecto.
- Jitter buffer (ms)
Tamaño del búfer definido manualmente cuando el modo automático está desactivado (500 ms por defecto). Aumente el valor si en una red inestable el búfer se vacía con regularidad.
- PCR discontinuity window (ms)
Ventana del salto de PCR admisible (1000 ms por defecto). Un salto fuera de la ventana se considera una discontinuidad del flujo y provoca una resincronización dura.
La divergencia lenta entre el ritmo del PCR de la fuente y el reloj del nodo la corrige el compensador de deriva: la corrección se aplica de forma suave, mediante microdesplazamientos, sin resincronización dura y sin interrumpir la emisión. El control está en la pestaña «Análisis» del editor de flujo: «Compensación de la deriva de sincronización» (activada por defecto) y «Ventana suave de deriva de sincronización (ms)» — zona muerta dentro de la cual no se aplica la corrección (500 ms por defecto). La resincronización dura sigue siendo el mecanismo de reserva para las discontinuidades reales del flujo.