OTT y DVR¶
El subsistema OTT distribuye flujos mediante protocolos basados en HTTP: HLS (sobre MPEG-TS), MPEG-DASH y Low-Latency HLS (sobre CMAF, MP4 fragmentado), así como MPEG-TS over HTTP. Se admiten HTTPS y HTTP/3 (QUIC). La difusión se activa en la pestaña «OTT» del editor de flujo (Configurar flujo) y solo está disponible para los flujos SPTS; un programa de un multiplex se extrae a un flujo SPTS mediante el demultiplexor (Demultiplexor).
El DVR es un archivo permanente del flujo en disco. Se graba en paralelo con la difusión OTT — no se requiere un servicio de grabación aparte — y se reproduce a través de las mismas URL que la emisión en directo; solo se diferencian los parámetros de la consulta (DVR: el archivo del flujo).
Modos de difusión¶
La difusión progresiva de MPEG-TS por HTTP se activa con el ajuste «Servicio HTTP» (valor Live): transmisión continua del flujo de transporte original en una única respuesta HTTP.
La difusión segmentada se controla con el ajuste «Servicio HLS» (valores tal como aparecen en la interfaz):
- Peering / HLS
Segmentación simple. El modo está previsto para transferir un flujo entre nodos de Perfect Streamer: el nodo emisor entrega HLS sobre MPEG-TS y el nodo receptor se conecta con una entrada de tipo HLS. Los subtítulos WebVTT y el DRM no están disponibles en este modo, y la grabación DVR no se puede configurar.
- OTT / HLS
Segmentación optimizada para el arranque rápido de los reproductores en la difusión OTT (la carga de CPU es mayor). HLS se entrega sobre MPEG-TS; se aplica la alineación de los segmentos con el GOP (Segmentador).
- OTT / LL-HLS / DASH
Difusión sobre CMAF: el flujo genera segmentos fMP4 sobre los que se entregan MPEG-DASH y Low-Latency HLS. Con el ajuste «Chunks MPEG-TS HLS heredados» activado (activado de forma predeterminada) se entrega además el HLS convencional sobre MPEG-TS; desactivarlo ahorra disco y CPU. MPEG-DASH y Low-Latency HLS solo están disponibles en este modo.
Low-Latency HLS divide la lista de reproducción de medios en segmentos parciales (parts): el reproductor inicia la reproducción sin esperar a que el segmento esté completo; se aplican la recarga bloqueante de la lista de reproducción y la sugerencia de precarga. La duración objetivo de la parte se define con el ajuste «Duración objetivo de la parte LL (ms)» (ajuste adicional; 500 ms de forma predeterminada, se aplica en caliente y debe ser menor que el intervalo mínimo de chunk). Para una latencia baja precisa, el manifiesto DASH incluye la correspondencia del tiempo de medios con UTC, y los segmentos CMAF llevan marcas de tiempo del productor.
Nota
El empaquetado CMAF transporta únicamente las pistas de audio AAC y AC-3; las pistas con otros códecs se descartan y se genera una alerta (Alertas (alerter)).
Segmentador¶
En los modos OTT el flujo se analiza a partir de las tablas PAT/PMT y de los fotogramas clave, y los segmentos se cortan según el criterio de arranque rápido de los reproductores. El corte se controla con los ajustes «Intervalo mín. de chunk (s)» e «Intervalo máx. de chunk (s)»: el análisis comienza a partir del intervalo mínimo y, si no se encuentra un punto de corte, el segmento se cierra forzosamente al alcanzar el máximo.
«Segmentos alineados con el GOP» (activado de forma predeterminada; efectivo en el modo OTT / HLS): el segmentador alinea los límites de los segmentos con los puntos de acceso aleatorio y distingue un fotograma IDR de un fotograma I ordinario. En las fuentes con closed-GOP cada segmento comienza garantizadamente por SPS/PPS/IDR, un punto de entrada completo; la «cola» del GOP anterior se recorta. Esto elimina el fotograma negro al inicio de las sesiones VOD y ajusta la difusión a los requisitos de HLS (RFC 8216). El tipo de estructura GOP de la fuente se observa en las métricas del analizador (Análisis en profundidad). Debido a la alineación, la duración real del segmento puede superar el intervalo mínimo: la duración objetivo declarada en la lista de reproducción refleja el máximo real.
URL y autorización¶
La difusión la sirve el servidor HTTP de streaming del nodo (Servidor HTTP de streaming). La URL se construye según el esquema:
http://host:port/hls/<flujo>/<usuario>/<contraseña>/index.m3u8
http://host:port/hls/<flujo>/<usuario> — autorización por token
http://host:port/hls/<flujo>/ — autorización por IP
En lugar de /hls/ se sustituyen /dash/, /llhls/ o /http/; para los paquetes adaptativos — /hls/adaptive/ y análogos (Paquetes adaptativos). <flujo> es el identificador del flujo o el nombre definido por el ajuste «Nombre del flujo en la URL». El acceso no autorizado está prohibido: los inicios de sesión y los permisos de los clientes se configuran en la interfaz web (Usuarios / Inicios de sesión).
Las plantillas de URL ya preparadas para los modos de difusión activos se muestran en la ventana de estadísticas del flujo, en la sección «URL de entrega», con un botón de copia (Estadísticas del flujo). Las sesiones de cliente activas se ven en la pantalla «Clientes» (Clientes).
HTTP/3 (QUIC)¶
El servidor HTTP de streaming puede entregar las rutas OTT (HLS, DASH, LL-HLS, MPEG-TS over HTTP) sobre QUIC. HTTP/3 se activa en los ajustes del servidor HTTP de streaming (Servidor HTTP de streaming); el certificado utilizado es el mismo que para HTTPS, pero no es obligatorio activar el propio HTTPS: QUIC escucha por separado y lee directamente los archivos del certificado. Son precisamente ellos los que hacen falta: sin certificado y sin clave, el escucha HTTP/3 no se levanta.
Los clientes de navegador pasan a QUIC mediante el anuncio estándar Alt-Svc: el anuncio se emite a petición explícita del cliente, con el parámetro ?h3 en la URL master. Si la conexión QUIC no se establece (puerto UDP cerrado, certificado no confiable), el cliente permanece de forma transparente en HTTPS y la difusión no se interrumpe. Las solicitudes administrativas se atienden únicamente por TCP. Low-Latency HLS y DASH sobre QUIC se entregan de forma incremental: las partes se envían al cliente a medida que están listas.
Subtítulos WebVTT¶
El ajuste «Subtítulos de teletexto a WebVTT» (activado de forma predeterminada, efectivo en los modos OTT) convierte los subtítulos DVB Teletext / DVB Subtitling del flujo de entrada en pistas WebVTT: a la lista de reproducción maestra HLS se añade una pista de subtítulos y al manifiesto DASH, un conjunto de adaptación de texto. La presencia de subtítulos en la fuente se indica en la información de medios de la ventana de estadísticas. Los subtítulos se archivan en el DVR en paralelo con los segmentos de medios y están disponibles durante la reproducción del archivo; el DRM no los cifra. Para el diagnóstico se dispone del ajuste «Registrar los mensajes de subtítulos» (ajuste adicional).
Paquetes adaptativos¶
Un paquete adaptativo reúne varios flujos OTT de un mismo canal con distintas tasas de bits bajo una única lista de reproducción maestra HLS o un único manifiesto DASH: el propio reproductor conmuta entre las variantes según el ancho de banda disponible.
El paquete se crea como un flujo de tipo «Adaptativo» (Nuevo flujo; el editor del paquete es Paquete adaptativo). Los participantes son flujos SPTS con el modo OTT activado: OTT / HLS para el HLS adaptativo sobre MPEG-TS y OTT / LL-HLS / DASH para el DASH adaptativo y el Low-Latency HLS. Para cada participante se puede definir la tasa de bits manualmente; con el valor 0 se toma la tasa de bits medida.
Las URL master del paquete se construyen según los esquemas /hls/adaptive/, /dash/adaptive/, /llhls/adaptive/ con las mismas variantes de autorización. El acceso concedido a un cliente sobre un paquete adaptativo se extiende automáticamente a todos los flujos que lo integran.
Protección de contenidos (DRM)¶
La difusión OTT de un flujo se puede cifrar. El cifrado se realiza una sola vez, en el momento de generar el segmento: la difusión en directo y el archivo DVR reciben los mismos datos cifrados; el archivo se almacena cifrado en el disco. Los ajustes se agrupan en la sección «Protección de contenidos» de la pestaña «OTT»; aplicar cualquiera de ellos reinicia la difusión OTT del flujo.
Modos (campo «DRM», valores tal como aparecen en la interfaz):
- HLS AES-128
Cifrado de segmento completo de los segmentos TS; el descifrado lo realiza cualquier reproductor HLS estándar. Requiere «Servicio HLS» = OTT / HLS.
- CENC cenc (DASH), CENC cbcs (DASH)
Cifrado por fotogramas según MPEG Common Encryption (ISO/IEC 23001-7): el esquema cenc (AES-CTR) o cbcs (AES-CBC por patrón, ecosistema Apple FairPlay). Requieren el modo OTT / LL-HLS / DASH con la difusión de chunks TS desactivada; la difusión se realiza únicamente por MPEG-DASH.
Cualquier modo de protección exige que el «Servicio HTTP» esté desactivado: la difusión progresiva elude el cifrado. El servidor rechaza una combinación de ajustes incompatible indicando el motivo.
Claves y entrega:
«Clave de contenido (32 hex)» es la clave de cifrado (para AES-128 estático y para CENC). «ID de clave (CENC KID)» es el identificador de la clave CENC; si el campo está vacío, el identificador se deriva de forma determinista del identificador del flujo.
«Entrega de clave» (AES-128, valores tal como aparecen en la interfaz): Built-in (PSS serves the key) — el propio servidor entrega la clave mediante una URL de sesión con la misma autorización que los segmentos; External key server — la etiqueta de clave de la lista de reproducción apunta a «URI de clave (EXT-X-KEY)» y la entrega integrada se desactiva. Para CENC el servidor no entrega claves a los reproductores: la entrega de claves la realiza la infraestructura DRM (servidores de licencias).
Rotación de claves (solo AES-128): «Origen de la clave» = Derived (rotating), «Secreto de rotación» (16 caracteres como mínimo) y «Ventana de clave (minutos)». La clave de cada ventana se calcula a partir del secreto mediante una función irreversible; el archivo DVR se reproduce a través de cualquier número de rotaciones, ya que el número de ventana se recupera a partir del instante de grabación del segmento.
Advertencia
El cambio de la «identidad de claves» de un flujo — la clave de contenido, el secreto o los ajustes de rotación — deja ilegible el archivo cifrado grabado anteriormente; la interfaz web solicita la confirmación de tales cambios. Las claves se almacenan en texto claro en la configuración del servidor: restrinja el acceso a los ficheros de configuración y a las copias de seguridad.
DVR: el archivo del flujo¶
La grabación se activa en la pestaña «OTT», sección «DVR» (visible en los modos OTT):
- «Almacén DVR»
El almacén en el que se escribe el archivo (Almacenes DVR). El valor «Ninguno» significa que la grabación está desactivada.
- «Retención (horas)»
La profundidad del archivo del flujo, de 1 hora a 90 días. Los segmentos más antiguos se eliminan mediante la limpieza periódica.
- «Mínimo protegido (horas)»
Umbral inferior de protección: la limpieza nunca elimina grabaciones más recientes que este valor, ni siquiera cuando falta espacio en el disco.
La grabación comienza automáticamente en cuanto el flujo pasa al estado operativo. La desvinculación del almacén detiene la grabación (los ficheros permanecen en el disco y la reproducción del archivo cesa); al cambiar de almacén la grabación comienza de nuevo y los ficheros no se trasladan. Los cambios destructivos los confirma la interfaz web con el diálogo «Confirmar cambios de DVR».
Almacenes DVR¶
Los almacenes se configuran en la pantalla «Almacenes DVR» (Almacenes DVR). Para cada uno se definen la ruta del directorio (no modificable tras la creación), el límite de uso del disco en porcentaje y, en los ajustes adicionales, el intervalo de limpieza, la demora y la porción de recorte en caso de desbordamiento, la reserva de espacio de emergencia y la histéresis. Se recomienda un solo almacén por disco: varios almacenes en un disco compartido compiten por el espacio libre. Eliminar un almacén de la configuración no borra los ficheros del disco.
La limpieza del archivo funciona en varios niveles:
por profundidad — los segmentos más antiguos que el valor «Retención (horas)» de cada flujo;
por espacio — cuando se supera de forma sostenida el límite de uso del disco, se eliminan los segmentos más antiguos de forma proporcional en todos los flujos, pero nunca los más recientes que el mínimo protegido;
de emergencia — cuando la falta de espacio es crítica, la grabación se detiene hasta que se recupera espacio libre;
la limpieza de los ficheros huérfanos dentro de los archivos de los flujos en grabación se realiza automáticamente; los directorios de archivo que quedan de flujos eliminados se borran únicamente de forma manual, con el botón «Limpiar los archivos huérfanos» de la pantalla «Monitor de DVR» (Monitor de DVR).
El estado de los almacenes y de los flujos en grabación — ocupación, volumen del archivo, latencias de escritura y lectura, tareas de limpieza activas — se muestra en esa misma pantalla «Monitor de DVR». El archivo de un flujo concreto se puede borrar de forma irreversible con el botón «Borrar el archivo DVR» de la ventana de estadísticas del flujo; la grabación continúa mientras tanto.
Reproducción del archivo (VOD)¶
El archivo se reproduce a través de las mismas URL que la emisión en directo HLS / DASH; solo se diferencian los parámetros de la consulta:
t=<tiempo>Inicio de la ventana VOD (tiempo Unix, en segundos).
t=0— desde el principio del archivo. La presencia del parámetrotactiva el modo VOD.d=<segundos>Duración de la ventana VOD. Sin el parámetro (o con
d=0) — hasta el instante actual. Solo es efectivo junto cont.epg=<tiempo>VOD por la guía de programación: el servidor localiza el evento EPG activo en el instante indicado y toma su inicio y su duración como límites de la ventana. Requiere que el flujo esté vinculado a una fuente EPG — los campos «Fuente EPG» y «Canal EPG» de la pestaña «Flujo» (Modificación del flujo, Generador EIT); los parámetros
tydse ignoran en ese caso. Para un catálogo de programas basta con que la interfaz indique el instante del evento: los límites exactos los calcula el servidor.
Particularidades de la reproducción:
Los límites de la ventana se normalizan: una solicitud anterior al principio del archivo se ajusta al primer segmento disponible; una ventana situada íntegramente fuera del archivo devuelve una lista de reproducción vacía pero válida.
La lista de reproducción HLS de VOD es cerrada (lleva la marca de finalización); el manifiesto DASH es estático. Las interrupciones de la grabación en DASH se representan como periodos independientes: los reproductores se desplazan a través del límite sin ajustes especiales.
Si el cliente alcanza el límite derecho de la ventana, los segmentos que faltan se entregan desde la memoria en vivo del flujo, sin redirecciones ni nueva autorización.
Una sesión VOD abierta protege su ventana frente a la limpieza periódica hasta que la sesión se cierra; la limpieza de emergencia y el mínimo protegido tienen prioridad.
Los subtítulos WebVTT también se reproducen desde el archivo (Subtítulos WebVTT).
Los paquetes adaptativos admiten los mismos parámetros de VOD. En el manifiesto DASH solo entran las variantes con un almacén DVR vinculado; en la lista de reproducción maestra HLS entran todas las variantes, pero las variantes sin archivo responden con un error a una solicitud de archivo y el reproductor las omite.