Planificación y protocolos de transmisión de datos¶
El núcleo de Perfect Streamer es la entrega fiable de flujos MPEG-TS entre nodos a través de una red pública con pérdida de paquetes y retardos. Esta sección describe el modelo de transmisión, los protocolos de transporte y cómo planificar un canal: elegir un protocolo y calcular el ancho de banda, la latencia y los puertos. Los ajustes detallados de los campos individuales se tratan en la descripción contextual de la interfaz web (Interfaz web), y el procesamiento del flujo en un nodo, en la sección Streamer: detalles de implementación.
Modelo de transmisión: Stream, Sender, Receiver, Peer¶
La unidad de trabajo es un flujo (Stream), un único canal MPEG-TS. Para cada flujo se configura un servidor emisor (Sender) y uno o varios receptores (Receiver); la asociación emisor-receptor se denomina Peer.
La configuración se reduce a listas de entradas (input) y salidas (output) para cada flujo:
en el emisor, input son las fuentes MPEG-TS, output es la transmisión a los receptores;
en el receptor, input es la recepción del flujo desde el emisor.
Varias entradas en la lista proporcionan redundancia de fuentes; varias salidas, la distribución simultánea de un mismo canal a muchos destinatarios y por distintos protocolos.
Para los protocolos en los que el receptor inicia la conexión, el NAT en su lado no es un obstáculo: el receptor se conecta él mismo al emisor y no se requiere reenvío de puertos entrantes en el receptor.
Protocolos Peer de transmisión fiable¶
Para la transmisión entre el emisor y el receptor hay cuatro protocolos Peer. Se dividen en dos clases según el principio de compensación de pérdidas:
ARQ (Automatic Repeat reQuest): los paquetes perdidos se retransmiten a petición del receptor. Requiere un canal de retorno y un búfer en el receptor; la profundidad de recuperación es configurable. A esta clase pertenecen PS1, SRT y RIST.
FEC (Forward Error Correction): al flujo se le añaden continuamente datos redundantes que permiten recuperar las pérdidas sin canal de retorno. A esta clase pertenece Pro-MPEG COP3/RTP+FEC (SMPTE 2022-1/2).
PS1 (Perfect Stream)¶
Un protocolo de desarrollo propio basado en UDP. Funciona según el principio ARQ con retransmisión selectiva. Consume pocos recursos y transporta flujos de alta tasa de bits, incluido un MPTS de tamaño completo.
El receptor inicia la conexión, por lo que el emisor requiere autenticación: los receptores se registran como Peer con login y contraseña o se autorizan por IP. La latencia está determinada por el búfer del receptor (ventana de eliminación de jitter y de retransmisión); el búfer del emisor debe ser mayor que el de los receptores. Al cambiar la fuente activa en el emisor, los receptores no se reconectan: la interrupción se recupera mediante la retransmisión normal.
PS1 es un protocolo propietario y funciona solo entre nodos Perfect Streamer. Es la opción más adecuada para una configuración punto-multipunto: un emisor y muchos receptores.
SRT¶
Un protocolo abierto basado en UDP (UDT). Está muy extendido y compensa bien la pérdida de paquetes. Admite los modos listener y caller, por lo que es compatible con equipos SRT de terceros y servicios en la nube.
En modo listener en el emisor, varios receptores se conectan a un mismo flujo; para la autorización, los receptores se registran como Peer, y también se pueden autorizar por IP. La parte iniciadora (caller) puede estar tanto en el receptor como en el emisor. El margen de ancho de banda para la retransmisión se define como un porcentaje por encima de la tasa de bits del flujo.
En nodos de recepción muy cargados, con un gran número de entradas SRT en modo caller, se puede desactivar el almacenamiento en búfer integrado del receptor SRT (TSBPD): de la sincronización se encarga el búfer de jitter del nodo (Sincronización), lo que reduce notablemente la carga de CPU.
RIST¶
Un protocolo abierto basado en RTP/RTCP. Funciona según el principio ARQ sin ACK, solo mediante NACK. Utiliza unicast y multicast.
Se implementan los perfiles Simple y Main: Simple ocupa dos puertos UDP consecutivos (el puerto base debe ser par), Main multiplexa los datos en un solo puerto. Se admiten varias rutas (peers) con balanceo ponderado, para redundancia y agregación. En multicast puede haber muchos receptores, con autorización por IP.
Pro-MPEG FEC¶
Entrega de MPEG-TS sobre RTP con corrección de errores hacia adelante (FEC), sin canal de retorno. En PSS se implementa una matriz FEC bidimensional (filas y columnas, SMPTE 2022-2).
El flujo de paquetes RTP se agrupa en una matriz de tamaño determinado, a lo largo de cuyas filas y columnas se forman los paquetes FEC. Cuanto menor es la matriz, mejor es la recuperación, pero mayor es la sobrecarga constante. Los canales FEC ocupan dos puertos adicionales (port+2 y port+4), lo que hay que tener en cuenta al ubicar varios flujos en un mismo host o en un mismo grupo multicast.
Las ventajas son una latencia fija baja y la compatibilidad con equipos de radiodifusión profesionales. Las desventajas son el tráfico adicional constante y la escasa recuperación con grandes pérdidas (por encima de ~0,2 %), por lo que el protocolo está pensado para canales gestionados con bajas pérdidas y no para el internet público «pesado».
Elección del protocolo de transmisión¶
Protocolo |
Principio |
Canal de retorno |
Latencia |
Compatibilidad |
|---|---|---|---|---|
PS1 |
ARQ sobre UDP |
requerido |
configurable |
solo entre nodos Perfect Streamer |
SRT |
ARQ sobre UDP (UDT) |
requerido |
configurable |
abierto; equipos SRT de terceros y nube |
RIST |
ARQ (NACK) sobre RTP/RTCP |
requerido |
configurable |
abierto; equipos RIST de terceros; unicast y multicast |
Pro-MPEG FEC |
FEC sobre RTP |
no requerido |
baja, fija |
abierto (SMPTE 2022-1/2); equipos de radiodifusión profesionales |
Criterios de elección:
un canal entre nodos Perfect Streamer, alta tasa de bits o MPTS de tamaño completo, distribución punto-multipunto — PS1;
compatibilidad con equipos de terceros o la nube, margen de retransmisión en porcentaje sobre la tasa de bits — SRT;
un transporte abierto basado en RTP, multicast, balanceo por varias rutas — RIST;
un canal gestionado con bajas pérdidas, latencia mínima sin canal de retorno, equipos de radiodifusión profesionales — Pro-MPEG FEC.
Planificación del ancho de banda, la latencia y los puertos¶
Protocolos ARQ (PS1, SRT, RIST). Las pérdidas se compensan mediante retransmisión, por lo que hay que prever:
un canal de retorno del receptor al emisor;
un margen de ancho de banda por encima de la tasa de bits nominal, ya que los picos de pérdidas provocan picos de tráfico de retransmisión;
un búfer en el receptor para la latencia del canal. Cuanto mayor sea el búfer, más profunda será la recuperación de pérdidas, pero mayor será la latencia de extremo a extremo; como referencia, varios valores de RTT. Los flujos de baja tasa de bits requieren un búfer mayor en tiempo, para que quepan suficientes paquetes en la ventana de recuperación.
Protocolo FEC (Pro-MPEG). Los paquetes redundantes se transmiten continuamente, con independencia de las pérdidas reales, por lo que la sobrecarga es fija y depende del tamaño de la matriz FEC. No se necesita canal de retorno, la latencia es baja y fija, pero la recuperación es limitada, por lo que este transporte es adecuado para canales con bajas pérdidas.
Puertos. Cada punto de escucha necesita un puerto UDP único dentro del host o del grupo. Además, tenga en cuenta que el perfil RIST Simple ocupa dos puertos consecutivos (el puerto base par y el siguiente), y Pro-MPEG ocupa el puerto base más dos puertos FEC (port+2 y port+4). En una red Meshwork, un catálogo común de direcciones y puertos ocupados ayuda a evitar colisiones (véase Meshwork).
Cifrado de flujos¶
El cifrado AES se activa con una frase de contraseña común que se establece en ambos lados de la conexión; las frases deben coincidir. Una frase vacía significa funcionamiento sin cifrado. El cifrado no modifica la tasa de bits del flujo.
El soporte y la longitud admisible de la frase varían según el protocolo:
Protocolo |
Longitud de la frase de contraseña |
Particularidades |
|---|---|---|
PS1 |
10–64 bytes |
— |
SRT |
10–79 bytes |
Además se elige la longitud de la clave: 128, 192 o 256 bits. Una frase fuera de la longitud admisible detiene la entrada o la salida con un mensaje de error explícito. |
RIST |
no se comprueba; se usan los primeros 127 bytes |
Solo en el perfil Main. En el perfil Simple la frase de contraseña no tiene efecto. |
Pro-MPEG |
10–64 bytes |
Extensión no estándar: al activarla no se garantiza la compatibilidad con software y equipos de terceros. |
La longitud de la frase se cuenta en bytes, no en caracteres: una letra cirílica ocupa dos bytes.
Otras entradas y salidas¶
Además de los protocolos Peer, hay transportes estándar para recepción y transmisión:
Protocolo |
Entrada |
Salida |
Nota |
|---|---|---|---|
UDP |
sí |
sí |
unicast/multicast, SSM, selección de interfaz; hasta 7 paquetes TS por datagrama |
RTP |
sí |
sí |
restablecimiento del orden de los paquetes desordenados |
TCP |
sí |
— |
modo cliente; recepción donde UDP está bloqueado |
HLS / HTTP |
sí |
sí |
en la recepción, la variante de la lista de reproducción adaptativa se selecciona mediante un número configurable (el primero de forma predeterminada); la entrada es solo para SPTS |
RTSP |
sí |
— |
cámaras IP y servidores RTSP; remultiplexación automática a MPEG-TS; solo para SPTS |
RTMP / RTMPS |
sí |
sí |
publicación en receptores RTMP de terceros; H.264 y HEVC; solo para SPTS |
file / device |
sí |
sí |
grabación en un archivo TS y salida MPEG-TS a un dispositivo (por ejemplo, ASI); reproducción en bucle desde un archivo |
pipe (FIFO) |
sí |
sí |
puente a un proceso externo mediante una tubería con nombre |
std (aplicación externa) |
sí |
sí |
puente a protocolos no estándar mediante una aplicación de consola |
La publicación y la recepción RTMP se describen en Publicación y recepción RTMP; RTSP, la entrada HLS/HTTP, los archivos y dispositivos, las tuberías con nombre y las aplicaciones externas, en Otras entradas y salidas. Los ajustes detallados de cada transporte se indican en la sección Interfaz web. La distribución OTT (HLS, LL-HLS, DASH) se describe por separado en OTT y DVR.
Redundancia de fuentes y distribución¶
Redundancia. Para un flujo se pueden definir varias entradas; solo una está activa en cada momento. Cuando la entrada activa falla, el flujo cambia automáticamente a la siguiente de la lista y, al restablecerse, puede volver a la fuente prioritaria. Así se pueden planificar de antemano las fuentes principal y de reserva de un canal; los ajustes detallados de la conmutación de entradas se describen en Flujos SPTS.
Distribución. Varias salidas en un mismo flujo distribuyen un mismo canal a muchos destinatarios y por distintos protocolos simultáneamente.
Requisitos del flujo de entrada¶
Conformidad con ISO/IEC 13818-1, Single Program (SPTS) o Multi Program Transport Stream (MPTS).
El conjunto de pistas viene determinado por el tipo de contenido seleccionado del flujo SPTS, véase Flujos SPTS.
Se admiten los flujos codificados, véase Flujos SPTS.
Para la sincronización, el flujo debe contener marcas PCR válidas.
El filtrado, la modificación y los modos de tasa de bits del flujo de entrada se describen en Flujos SPTS, y las particularidades del multiplex, en Flujos MPTS.