---
title: Historial de versiones
url: https://doc2.pstreamer.tv/es/manual/whats_new/index.html
lang: es
product: Perfect Streamer
version: 2.0.2.362
---

# Historial de versiones

## versión 2.0.2.362 Beta

*06.09.2026*

- **Menú del módulo CI**: se lee el menú propio del módulo: el estado de la tarjeta, las suscripciones, el número de serie, la introducción del PIN y los elementos de servicio están disponibles directamente desde la pantalla de hardware, lo mismo que el módulo mostraría en la pantalla del televisor. Allí mismo apareció el pasaporte del módulo —fabricante, código de producto y tipo de aplicación EN 50221— y el nodo decodifica su nombre, de modo que los nombres cirílicos ya no llegan distorsionados ([Menú del módulo](../webui/administration.md#webui-hardware-cam-menu)).
- **Desencriptado por un módulo CI aparte**: un módulo alojado en un lector de tarjetas independiente atiende cualquier entrada de un flujo, y no solo la recepción desde una tarjeta DVB; por él pasa todo el transporte de la entrada, mientras que la lista de programas solo indica cuáles desencriptar. La ranura se asigna en la propia entrada, y ahí mismo se ve qué entrada la ocupa ([CI/CAM en la entrada de un flujo](../webui/streams.md#webui-stream-io-cam)).
- **Varias ranuras CI en una misma entrada**: el multiplex se conduce sucesivamente a través de varios módulos, con su propio conjunto de programas para cada ranura. La frecuencia de reloj del bus CI se elige según el bitrate real de la entrada, y una ranura que haya quedado ocupada se libera bajo petición desde la pantalla de hardware.
- **Tablas de servicio en el demultiplexado**: las tablas de red y de hora y los demás PID de servicio del multiplex de origen obedecen ahora a las mismas claves `mpegts-filter-nit`, `mpegts-filter-tdt`, `mpegts-filter-unnecessary` y `mpegts-filter-cat` que en las demás rutas, en lugar de descartarse incondicionalmente. Con ello ha cambiado el valor por defecto: un flujo extraído de un multiplex lleva las tablas de red y de hora que antes no llevaba; un receptor situado tras ese flujo, y un módulo CI en primer lugar, espera verlas. El comportamiento anterior se recupera con `mpegts-filter-nit`.
- **Una discontinuidad de PCR ya no vacía el búfer de jitter**: una entrada que ha captado un salto de PCR hacia delante desplaza el punto de sincronización sobre la marcha, sin drenar la cola, de modo que la discontinuidad cuesta un único tropiezo en lugar de volver a llenar el búfer. La ventana a partir de la cual un salto cuenta como discontinuidad se elige automáticamente ([Sincronización](../streamer/spts.md#streamer-spts-sync)).
- **Arranque rápido de una entrada HLS**: una lista de reproducción en directo se retoma por la cola; a la cola entran solo los últimos segmentos necesarios para el jitter configurado, y no toda la ventana, de modo que la entrada sale al aire con un retardo de un par de segmentos en lugar de una ventana entera de la lista. Una lista de reproducción finalizada (VOD) sigue reproduciéndose desde el principio.
- **Supresión de la oscilación de alertas**: una alerta que se levanta y se resuelve una y otra vez se pliega en un único incidente; el nodo la mantiene durante la calma y la cierra solo cuando la oscilación ha cesado de verdad. Una tormenta de repeticiones no se propaga ni por el registro ni por los canales externos. Una fuente oscilante identificada una vez lo sigue siendo tras la calma: su siguiente serie se mantiene desde la primera repetición.
- **Edición de un canal de EPG**: al canal se le asignan un identificador XMLTV independiente del nombre mostrado y denominaciones por idioma, y un canal que ya no hace falta se elimina por completo: con él se van sus denominaciones, sus eventos y su pertenencia a los conjuntos.
- Otras mejoras y correcciones de errores.

## versión 2.0.2.335 Beta

*27.08.2026*

- **Meshwork (multidominio)** — varios servidores se agrupan en dominios con nombre, y el dominio sirve de frontera de aislamiento: la pertenencia de los nodos, el catálogo de recursos y las alertas se propagan únicamente dentro de su propio dominio y entre dominios no se transmite nada. Un nodo puede pertenecer a varios dominios a la vez sin mezclar sus datos. Más información — [Meshwork](../meshwork/index.md#meshwork).
- **Autodescubrimiento de nodos** — basta con indicar el dominio y un único punto de entrada: los nodos intercambian listas de vecinos y construyen por sí mismos una red totalmente mallada de enlaces directos. La clave común del dominio se genera automáticamente y se transmite solo por un canal protegido — TLS o un segmento de confianza de la red local.
- **Biblioteca distribuida de recursos** — las salidas UDP, RTP, Pro-MPEG y RIST, las entradas multicast UDP, RTP y RIST, así como los enlaces PS1 y SRT se publican en el catálogo común del dominio (`/data/library`): una lista única de grupos multicast, puertos, VLAN, fuentes SSM y enlaces punto a punto con indicación del nodo y del flujo. El catálogo muestra qué direcciones y puertos están ya ocupados, y una entrada nueva se conecta directamente desde él — eligiendo un flujo que ya se emite en otro nodo del dominio, sin introducir la dirección a mano.
- **Vista general de los nodos del dominio** — de cada nodo se muestran el estado, la hora del último contacto, el rol, la región, la versión de la compilación, el tiempo de funcionamiento desde el arranque, la carga de CPU, el tráfico por interfaz física y el número de flujos al aire, y de cada enlace entre nodos PS1 o SRT, la tasa de bits, el RTT, la proporción de retransmisiones y pérdidas y un veredicto sobre su estado. Un nodo caído no desaparece de la lista: permanece en ella como inaccesible junto con su alerta durante siete días, y uno retirado del servicio se quita de la vista general con un comando propio.
- **Funcionamiento a través de NAT** — un nodo situado detrás de NAT participa plenamente en el dominio y sin redirección de los puertos entrantes: se conecta por sí mismo, su punto de acceso público se deduce de la dirección realmente observada y del puerto anunciado, y su estado lo retransmiten los vecinos un salto más allá — el nodo es visible incluso para quienes no pueden dirigirse a él directamente.
- **Nombre del nodo tomado del certificado** — un nodo sin nombre de host configurado anuncia a sus pares el nombre que cubre su propio certificado, y solo después de que ese nombre se resuelva de vuelta a él; el resultado de la comprobación se ve en los datos del servidor como `cert-host` y `cert-host-refused`.
- **Inicio de sesión automático de los enlaces dentro del dominio** — para los enlaces PS1 y SRT entre nodos de un mismo dominio no hace falta crear un usuario y una contraseña para cada enlace: en el lado que llama (entrada PS1, entrada SRT, salida SRT en modo caller) basta con activar el ajuste «Meshwork peer auth» y la autorización se realiza con el secreto común del dominio. El nodo par confirmado y su flujo se ven en la biblioteca de recursos y en la lista de sesiones.
- **Low-Latency HLS y MPEG-DASH sobre CMAF** — nuevo modo de difusión «OTT / LL-HLS / DASH»: el multiplexor integrado genera MP4 fragmentado (CMAF), sobre el que se sirven MPEG-DASH en `/dash` y Low-Latency HLS en `/llhls`; los paquetes adaptativos se ensamblan también para estos formatos. Más información — [Modos de difusión](../streamer/ott_dvr.md#streamer-ott-modes).
- **Baja latencia de LL-HLS** — la lista de reproducción de medios se divide en partes y se aplican la recarga bloqueante de la lista de reproducción y la sugerencia de precarga, por lo que el reproductor comienza la reproducción sin esperar a que esté listo el segmento completo. Los segmentos CMAF llevan Producer Reference Time, el manifiesto DASH anuncia UTCTiming y la latencia objetivo, y el ajuste «Duración objetivo de la parte LL (ms)» se aplica en caliente, sin reiniciar el flujo.
- **HTTP/3 (QUIC)** — HLS, MPEG-DASH, LL-HLS y MPEG-TS over HTTP se entregan sobre QUIC en un puerto UDP propio, con 0-RTT opcional; el cliente solicita el paso a QUIC con el parámetro `?h3`. QUIC solo funciona sobre TLS: con TLS desactivado el escuchador no se levanta ni se ofrece al cliente, y su estado real se ve en los datos del servidor HTTP y no solo en el ajuste. Las rutas administrativas siguen únicamente en TCP.
- **Alineación de los segmentos con IDR** — el segmentador distingue un IDR de un fotograma I ordinario: en las fuentes con closed-GOP cada segmento comienza con un punto de entrada completo, por lo que el reproductor abre el flujo en cualquier segmento; en las fuentes con open-GOP la frontera es el fotograma I más próximo.
- **Protección de contenidos (DRM)** — la difusión OTT de un flujo se puede cifrar: HLS AES-128 con una clave del propio servidor o de un servidor de claves externo y con rotación opcional por ventanas temporales, o bien MPEG Common Encryption (ISO/IEC 23001-7) con los esquemas cenc y cbcs para CMAF y DASH. El cifrado se realiza una sola vez, en el momento de formar el segmento, por lo que el archivo DVR se almacena cifrado y sobrevive a cualquier número de rotaciones de clave. Más información — [Protección de contenidos (DRM)](../streamer/ott_dvr.md#streamer-ott-drm).
- **Cada conexión MPEG-TS over HTTP es una sesión propia** — la lista de clientes del flujo tiene ahora una fila por conexión con su propio `sess-id`, los detalles están disponibles en `/data/stream/http-clients/<sess-id>`, una conexión concreta se cierra con `POST /data/kick?sess-id=<id>` y el límite `max-conn` se respeta también con valores mayores que uno.
- **DVR (archivo en red)** — cada canal OTT se escribe en disco en paralelo con la difusión, con la misma segmentación y sin un grabador aparte; en el modo de baja latencia el archivo se mantiene en dos líneas, MPEG-TS y CMAF, por lo que la grabación está disponible en el mismo contenedor que la emisión en directo. Más información — [DVR](../streamer/ott_dvr.md#streamer-dvr).
- **Reproducción del archivo (VOD)** — el archivo se sirve por las mismas URL HLS, DASH y LL-HLS que la emisión en directo: `t=<tiempo>` activa el modo VOD y fija el comienzo de la ventana, `d=<segundos>` — su duración. La lista de reproducción HLS es entonces cerrada, el manifiesto DASH es estático y las interrupciones de la grabación se presentan como periodos separados; los paquetes adaptativos reproducen el archivo con los mismos parámetros.
- **Catch-up por EPG** — en lugar de `t` y `d` basta con pasar `epg=<tiempo>`: el propio servidor localiza en el canal EPG asociado el programa que se emite en ese momento y toma su comienzo y su duración como límites de la ventana de reproducción.
- **Subtítulos en el archivo** — las pistas WebVTT se escriben en disco junto con los segmentos y se reproducen en VOD por las mismas URL; las ventanas sin diálogos no ocupan espacio en disco.
- **Almacenes DVR** — puede haber varios almacenes, cada uno con su propio límite de llenado y su propio orden de limpieza. La profundidad del archivo («Retención (horas)», hasta 90 días) y el mínimo protegido se definen por separado para cada flujo, y la limpieza por espacio libre no toca ni el mínimo protegido ni las ventanas de las sesiones VOD abiertas.
- **Monitor DVR** — una pantalla específica muestra el estado y el llenado de los almacenes, el volumen y la profundidad del archivo por flujo y las latencias de lectura y de escritura, mientras que el histograma de cobertura (`/data/dvrstat`) señala no solo los huecos del archivo, sino también su causa — la caída de la entrada, un cambio de PMT, el scrambling, la ejecución de la limpieza. Desde esa misma pantalla se borran el archivo de un flujo concreto y los directorios de los flujos eliminados.
- **Un fallo de disco del archivo ya no detiene el nodo** — un error al dar servicio al archivo DVR se limita al almacenamiento y al paso donde se produjo: el resto de los flujos y el resto de las líneas de grabación siguen funcionando, y el archivo afectado se marca como necesitado de reconstrucción.
- **Alerter** — nuevo servicio de notificaciones: cada fallo se convierte en un incidente que se genera, se actualiza y se resuelve automáticamente, mientras que el conjunto activo deduplicado muestra únicamente lo que está ocurriendo ahora. La gravedad se define con una escala única — desde informativa hasta la que exige la intervención del administrador; un incidente de ese tipo se resuelve con la confirmación del operador. Más información — [Alertas (alerter)](../meshwork/alerts.md#meshwork-alerts).
- **Catálogo de códigos de alerta** — más de cincuenta tipos de incidente en una única lista: los flujos y sus entradas y salidas, las infracciones de TR 101 290, los recursos del nodo, los almacenes y la salud de la grabación DVR, la recepción DVB y CI/CAM, los transcodificadores, OTT, los certificados y los nodos del dominio. Los umbrales de disparo se configuran en la sección de alertas.
- **Entrega externa de las alertas** — las alertas salen fuera de la consola web: por correo mediante SMTP (STARTTLS, implicit TLS, AUTH), por mensaje a Telegram y mediante la ejecución de un comando arbitrario, al que el incidente se le entrega en variables de entorno y como JSON completo por la entrada estándar. Cada canal tiene su propio interruptor y su propio umbral de gravedad.
- **Alertas de todo el dominio** — el operador de guardia ve las alertas de cualquier nodo desde cualquier otro: el conjunto activo se propaga junto con el keep-alive y se retira en cuanto desaparece en el origen, y cada fila indica el nodo de origen. Las alertas de hardware y de sistema permanecen locales de forma predeterminada y se elevan al ámbito del dominio con un ajuste específico.
- **Registro en base de datos** — los mensajes del servicio se escriben en SQLite: entradas tipificadas con la fuente y el nivel de gravedad, agrupación de las repeticiones consecutivas en una sola fila con un contador y limitación de la retención por plazo y por volumen. A diferencia del conjunto activo de alertas, el registro sobrevive a un reinicio.
- **Interruptor general de las notificaciones** — con `enable` desactivado en los ajustes del alertador, el nodo no genera alertas propias ni envía nada al exterior, incluidas las alertas recibidas de sus pares del dominio; en la lista y en el flujo de eventos solo quedan las alertas de los pares distribuidas por el dominio.
- **La gravedad de una alerta de entrada/salida sigue a las consecuencias** — una entrada que falla mientras no lleva el flujo se marca como Error, mientras que una entrada portadora, cualquier salida y un fallo sin emisión se marcan como Critical; la valoración se recalcula mientras la alerta está abierta y sigue al cambio a la reserva.
- **Color en las notificaciones externas** — al texto del mensaje se ha añadido un marcador de color del nivel (rojo para los errores, amarillo para los avisos, verde para la retirada, azul para los informativos), y el correo sale en dos variantes a la vez: texto plano y HTML con una franja de color.
- **Las notificaciones de Telegram sobreviven a una tormenta** — las alertas acumuladas se combinan en el menor número de mensajes que permite el límite de 4096 caracteres, y ante una respuesta de limitación de frecuencia el nodo espera el tiempo indicado y repite el envío en lugar de descartar la notificación.
- **El retardo de la notificación se extiende a la entrada de reserva** — el aviso de que un flujo funciona en su entrada de reserva solo se levanta si la situación ha durado más que `alert-delay`, de modo que una fuente que se recupera y vuelve a caer ya no produce una sucesión de altas y bajas; con `alert-delay` igual a cero el comportamiento es el anterior.
- **Monitor TR 101 290** — control continuo de la conformidad del flujo de entrada con el estándar: un veredicto único («Normal», «Problema», «Comprobando…») y un informe estructurado por prioridades 1, 2 y 3, en el que para cada indicador se indican la cláusula del estándar, el valor medido y el límite. El multiplex MPTS se evalúa en su conjunto — por todos los PID, programas y tablas SI. El flujo se clasifica automáticamente como CBR o VBR, y las comprobaciones que solo tienen sentido con una tasa de bits constante no se evalúan en una fuente VBR y no producen falsos disparos. Más información — [Monitor TR 101 290](../streamer/analyzer.md#streamer-analyzer-tr101290).
- **Deriva del oscilador de referencia** — la desviación sistemática de la frecuencia de reloj de la fuente se mide por regresión lineal en ppm con la tolerancia de ±30 ppm de ISO/IEC 13818-1 y se publica como una métrica aparte. La desviación lenta se compensa con microdesplazamientos suaves del punto de sincronización («Compensación de la deriva de sincronización», activada por defecto), por lo que en la salida no hay saltos.
- **Modelo de búfer T-STD** — análisis del búfer de vídeo del decodificador de referencia según ISO/IEC 13818-1 con contadores de desbordamiento y de vaciado para MPEG-2, H.264 y HEVC; el cómputo se lleva con el reloj PCR y la velocidad de drenaje se ajusta a la tasa de bits real del vídeo. Se activa con el ajuste «Analizar el búfer de vídeo T-STD».
- **Análisis para la inserción de publicidad** — análisis de las secciones SCTE-35 con eventos de empalme, puntos de empalme de la capa de transporte con antelación configurable y marcas de acceso aleatorio. Los datos se muestran en las estadísticas del flujo cuando el análisis profundo está activado.
- **Asistente de reclamaciones** — para un flujo con infracciones persistentes se genera un texto listo para un chat de IA, a partir del cual este redacta una carta formal de reclamación al proveedor del flujo: la relación de infracciones persistentes, los valores medidos, las cláusulas del estándar y el impacto sobre el decodificador. El texto se obtiene con la petición `GET /data/stream/<id>/ai-complaint-prompt`; el nombre del flujo y la dirección de la fuente no se incluyen en el texto.
- **CI/CAM (EN 50221)** — host Common Interface integrado: detección del módulo, lectura de su nombre y de la lista de CA_system_id admitidos, selección de los programas que se van a descifrar y envío de CA_PMT para cada uno de ellos. Un módulo combinado con el receptor DVB descifra en línea los programas seleccionados del multiplex recibido, varios a la vez; el estado de las ranuras y el veredicto de cada programa se ven en la interfaz.
- **Descifrador por software BISS-1 / BISS-E** — se aplica no solo a la recepción desde una tarjeta DVB, sino a cualquier entrada de flujo: la clave se define para todo el SPTS o por programas del multiplex y se cambia en caliente, sin reiniciar la entrada. En la recepción desde una tarjeta DVB el resultado se verifica además con el propio flujo, de modo que una clave incorrecta no aparece como un descifrado correcto, sino que genera una alerta específica.
- **Limpieza del acceso condicional en la recepción DVB** — del multiplex recibido por una tarjeta DVB se eliminan, mediante un ajuste específico del adaptador, los PID ECM y EMM, y del PMT, los descriptores CA de los programas abiertos: por el resto del trayecto circula un flujo FTA limpio. Si se pierde la clave, la señalización de acceso condicional se restablece para que un receptor situado más abajo en la cadena pueda volver a solicitar el acceso.
- **Telemetría del transcodificador** — de cada codificador se publica la información de medios de la salida recodificada: el formato del fotograma, el códec de vídeo, el conjunto de códecs de audio y la tasa de bits actual, y de cada proceso — la carga de CPU y la memoria ocupada.
- **RTMP y RTMPS** — un canal se publica en cualquier receptor RTMP, incluidos YouTube y Facebook: vídeo H.264 o HEVC (HEVC mediante Enhanced RTMP) y una pista AAC; para `rtmps://` el nodo se conecta como cliente TLS. En sentido inverso, la entrada obtiene por sí misma el flujo de una fuente `rtmp://` o `rtmps://` y remultiplexa FLV a MPEG-TS.
- **Conmutación de fuente sin cortes** — al cambiar la entrada activa en el transmisor, los peers PS1 receptores no se reconectan: la numeración y las marcas de tiempo se mantienen continuas, el pico de la cola se amortigua descartando los paquetes más antiguos y el hueco se completa con la retransmisión habitual.
- **Retransmisión adaptativa PS1** — el receptor mide el RTT real hasta el transmisor y ajusta a él por sí mismo los intervalos de las peticiones de repetición; el RTT medido, el intervalo actual de repetición de la petición y el indicador de latencia demasiado baja se muestran en las estadísticas del enlace. La latencia del túnel de recepción se define directamente en milisegundos, en lugar del anterior multiplicador del RTT.
- **Estados «Reconectando» y «Acción de administrador»** — una entrada o una salida que ha perdido su fuente se reabre en el sitio y permanece en el estado «Reconectando» durante todo el tiempo de los intentos, generando un único aviso por episodio en lugar de un mensaje en cada intento. Una causa que no se resuelve repitiendo — un puerto ocupado, una interfaz ausente, datos que no son MPEG-TS, un fallo de SRT por el cifrado — hace que el nodo la pase al estado «Acción de administrador» con una alerta persistente, mientras que una modificación de los ajustes se aplica de inmediato.
- **Fecha del último error** — junto al texto del último error de una entrada o de una salida se publica su hora (`last-error-ts`, el mismo campo está también en el flujo de eventos), de modo que una causa antigua que ha quedado en una entrada en pausa se ve por separado del fallo actual.
- **Diagnóstico cuando el contenido de la entrada es inservible** — el mensaje sobre la pérdida de sincronización MPEG-TS nombra la causa probable: se han encontrado paquetes pero están desplazados un número conocido de bytes, o bien no hay estructura MPEG-TS en absoluto; para las entradas PS1 y Pro-MPEG se añade una indicación sobre la frase de contraseña del cifrado.
- **Tamaño real del búfer de recepción** — la entrada publica `socket-buffer-actual`, el tamaño concedido por el núcleo, mientras que `socket-buffer-size` sigue siendo solo una petición y el límite del sistema la recorta; la discrepancia se ve así de inmediato en lugar de manifestarse como pérdidas con una tasa de bits alta.
- **Multiplexor MPTS: identidad original** — los programas pueden conservar sus PID originales y el orden de los programas en la PAT, la SDT y la NIT se define manualmente, por lo que un multiplex se migra a **Perfect Streamer** sin cambiar la identidad del flujo para el equipamiento receptor. Los programas con scrambling de TS se migran con sus marcas de tiempo originales.
- **Numeración automática de PID para SPTS** — `enable-autopid` junto con `autopid-base` traslada todo el programa a una ventana previsible de 64 identificadores, empezando por la PMT y siguiendo con el vídeo, el audio y el resto de flujos elementales en el orden de la tabla original; un programa que no cabe en la ventana conserva íntegramente sus PID originales.
- **El tamaño del datagrama se fija en todas las salidas** — el ajuste `packets` se aplica ahora no solo en SRT, sino también en las salidas UDP, RTP, Pro-MPEG y RIST, y en la salida a un archivo y al flujo estándar establece el tamaño del bloque escrito. Los valores por defecto coinciden con el comportamiento anterior, por lo que una configuración en la que la clave nunca se fijó no cambia; un valor guardado distinto del predeterminado lo ignoraban las compilaciones anteriores y ahora entra en vigor en el primer reinicio: compruébelo antes de actualizar.
- **Integración con una facturación externa** — cada sesión de espectador se autoriza en un sistema externo de facturación o CRM, se mantiene mediante una reautorización periódica y, al terminar, se le notifica a ese mismo sistema: un ciclo de vida Start / Interim / Stop al estilo de RADIUS, y la revocación de la suscripción corta la sesión en mitad de la visualización. Se cubren OTT, el peering PS1 y las salidas SRT, y la propia facturación se conecta con plantillas de petición y de análisis de la respuesta, sin modificar el software.
- **Cliente ACME integrado (Let’s Encrypt)** — emisión y renovación automática de los certificados para el servidor web, el servidor HTTP/OTT y el servidor EPG: el certificado se solicita para cada nombre de host configurado, la renovación se comprueba a diario y, si falla, se genera una alerta. Se admiten una autoridad de certificación arbitraria y la vinculación externa de la cuenta, y el certificado nuevo se aplica sin reiniciar el servicio.
- **Parada rápida del servicio** — la detención ya no espera a un cliente que ha dejado de leer datos: con la misma carga el nodo termina en 2–4 segundos en lugar de aproximadamente un minuto, por lo que un reinicio dura segundos y no deja la emisión sin señal.
- **pss_lic 2.0** — la utilidad de consola para gestionar la licencia ha pasado a los comandos `apply`, `c2v`, `fingerprint`, `recipient`, `keys`, `detach`, `rehost` y `cancel` con opciones largas: aplica una actualización de licencia recibida, exporta el estado de la clave para el proveedor y traslada la licencia de un nodo a otro, también de forma temporal, y acepta cualquier archivo por la entrada estándar y escribe en la salida estándar. En detalle — [pss_lic](../toolkit/pss_lic.md#toolkit-pss-lic).
- **Edición manual del archivo de configuración** — junto con la documentación se publica un JSON Schema para `pss.json` (estricto y compatible) y una guía paso a paso para editar y trasladar el archivo: la configuración de un nodo detenido se puede editar ahora directamente y trasladar entre instalaciones y versiones tras comprobar el resultado con el esquema, mientras que antes la API HTTP era la única vía admitida. En detalle — [El archivo de configuración pss.json](../extras/config_file.md#extras-config-file).
- **Nueva interfaz web** — la gestión del nodo se ha trasladado a una consola nueva que se abre en la dirección del nodo (la ruta `/admin`): vista general, flujos, monitorización del sistema, DVB, DVR, transcodificadores, clientes, registro, alertas y todos los ajustes del servidor. Unos diagramas específicos muestran la topología del dominio Meshwork y el trayecto del flujo seleccionado desde las entradas hasta las salidas. La interfaz anterior se conserva en la dirección `/classic`. Más información — [Interfaz web](../webui/index.md#webui).
- **Inicio de sesión único en el dominio** — a una cuenta se le puede permitir el inicio de sesión automático: tras un único inicio con contraseña, el navegador abre el panel de este nodo sin formulario de inicio durante 14 días y sobrevive a un reinicio. Seguir un enlace desde ese panel traslada la sesión a un nodo vecino del dominio si se cumplen las condiciones del traspaso ([Servidor web y cuentas](../webui/administration.md#webui-web-server)); una dirección de un vecino escrita a mano no traslada la sesión. Un script o un panel de terceros presenta la misma clave en la cabecera `X-Auth-Token` o en el parámetro `auth-token`, y un administrador revoca el inicio automático en todo el dominio de una vez.
- **CORS para la API administrativa** — los nodos de un mismo dominio Meshwork están permitidos sin ninguna configuración, el resto de orígenes se enumeran en `web-server/cors-origin` (el valor `*` permite cualquier origen, `none` desactiva el mecanismo), de modo que la interfaz de un nodo se dirige a la API de otro; una petición entre dominios debe llevar el token de forma explícita: la cookie y Digest no actúan en ella.
- **Token de la sesión propia** — `GET /data/auth-token` devuelve al cliente su propio token y el plazo absoluto de validez, y en `/data/server` se ha añadido el campo `web-login-expires`, de modo que la interfaz muestra hasta cuándo es válido el inicio de sesión sin leer el propio token.
- **Cierre de una sesión de inicio automático** — `POST /data/auth-tokens/revoke?login=<login>` cierra todas las sesiones activas de una cuenta, y `?id=<hex>` cierra una por el identificador de la lista de sesiones; en la respuesta llega el número de sesiones cerradas, y la revocación se propaga por todo el dominio.
- **Motivo del rechazo al pasar a un nodo vecino** — si el paso no ha dado un inicio de sesión automático, el nodo devuelve en la dirección un parámetro `jump` con el valor `no-session`, `foreign-domain`, `autologin-off` o `token-refused`, en lugar de mostrar en silencio el formulario de contraseña.
- **Actualización en tiempo real** — el nodo publica su estado como un flujo de eventos en `/data/events`: al conectarse llega una instantánea completa y, a partir de ahí, una vez por segundo se actualizan los marcos de los flujos, de los recursos del sistema, de los clientes y de los adaptadores DVB, mientras que las alertas y los cambios de estado llegan como eventos. La interfaz y los paneles externos funcionan sin sondeo periódico.
- **Ayuda contextual** — cada pantalla y cada ventana importante de la nueva interfaz disponen de una llamada a la ayuda que abre la sección de la documentación correspondiente exactamente a lo que está abierto en ese momento: el botón general de ayuda, para la pantalla; el botón «?» del encabezado de la ventana, para esa ventana. La sección se abre en el idioma de la interfaz.
- **Idiomas, temas y disposiciones** — la interfaz está traducida a seis idiomas (ruso, inglés, alemán, francés, español y portugués), admite un aspecto claro y otro oscuro y ajusta por sí misma la densidad de la disposición al teléfono, la tableta, la estación de trabajo y el videowall.
- **Acceso sin límite del número de conexiones** — los límites de conexiones del receptor han ganado un tercer estado, «Sin límite», junto a «Protocolo prohibido» y «Como máximo» con un número; antes el acceso ilimitado se representaba con un número deliberadamente grande. El cero sigue significando la prohibición del protocolo, de modo que el sentido de los ajustes guardados no cambia tras la actualización. En detalle — [Usuario: añadir y editar](../webui/configure.md#webui-user-editor).
- **La edición del acceso a los flujos no afecta a sesiones ajenas** — añadir un flujo a la lista de permitidos y volver a una lista vacía no rompen ninguna sesión, y estrechar la lista cierra las sesiones PS1 y SRT solo en los flujos que han salido de ella. Antes, cualquier edición de la lista desconectaba la cuenta por completo en todos los protocolos.
- **Activación de la licencia desde la interfaz web** — la pantalla «Licencia» ha ganado una sección «Activación»: la exportación del estado de la clave para el proveedor —como archivo C2V o al portapapeles— y la aplicación de la clave V2C recibida, mediante archivo o pegando el texto. La aplicación de la clave reinicia el nodo. En detalle — [Licencia](../webui/administration.md#webui-license).
- **Aviso de caducidad de la licencia** — el nodo genera una alerta dos semanas antes del fin del plazo y la eleva al nivel que requiere intervención cuando el plazo se ha cumplido. La alerta se replica por el dominio, por lo que la licencia que caduca de un vecino se ve desde cualquier nodo ([Alertas (alerter)](../meshwork/alerts.md#meshwork-alerts)).
- **Una licencia considerada no auténtica detiene el nodo** — un nodo cuya licencia se considera no auténtica levanta una alerta que requiere acción del administrador, reinicia el servicio y el arranque se rechaza: el servicio permanece detenido hasta que en el nodo haya una licencia auténtica. La alerta se replica por el dominio ([Alertas (alerter)](../meshwork/alerts.md#meshwork-alerts)).
- **Vuelta a la última configuración operativa** — el nodo guarda una copia de los ajustes con los que arrancó limpiamente la última vez y, cuando `pss.json` es inaceptable, arranca con ella — con todos sus flujos, y no con los ajustes por defecto, que no contienen flujos. El archivo de ficheros rechazados se ha puesto en orden: nombres en UTC, sufijo numérico en lugar de sobrescribir cuando dos fallos caen en el mismo segundo, las veinte copias más recientes; la alerta nombra directamente la ruta de la copia archivada. En detalle — [Comportamiento en el arranque y ante errores de configuración](../install/files.md#startup-config-errors).
- **La prioridad de las entradas se edita con el ratón y con el teclado** — un administrador puede reordenar las entradas de un flujo arrastrando o con `Alt+↑` y `Alt+↓`, en la pestaña «Entradas» del editor y en la fila desplegada de la lista de flujos (en el teléfono el orden solo se muestra); una entrada añadida se coloca siempre la última y nunca sustituye a la principal ([Flujos](../webui/streams.md#webui-streams)).
- **El número de una entrada es su lugar en la lista de redundancia** — un mismo número figura ahora en la fila del flujo, en la fila desplegada, en el editor y en el texto de la alerta. Las entradas con el mismo valor de prioridad conservan el orden en que están registradas, también en las modificaciones posteriores de los ajustes ([Redundancia de fuentes](../streamer/spts.md#streamer-spts-reservation)).
- **El fallo de una entrada abandonada se lee como historial** — la entrada que el flujo dejó al pasar a la de reserva se detiene, pero conserva su causa: la interfaz la muestra como una línea atenuada con su antigüedad, y no como un fallo actual, y la alerta sobre el error de esa entrada se retira. La causa es entonces la suya propia, de transporte, si la entrada llegó a comunicarla ella misma ([Redundancia de fuentes](../streamer/spts.md#streamer-spts-reservation)).
- **Ordenación de la lista de clientes** — en la pantalla «Clientes» el encabezado de una columna ordena la lista: las columnas numéricas se abren en orden descendente, las de texto de la A a la Z, y una tercera pulsación devuelve el orden del nodo. Se ordena toda la lista encontrada, no la página mostrada ([Clientes](../webui/monitor.md#webui-clients)).
- **Salto al flujo desde la pantalla de transcodificadores** — la fila del decodificador y de cada codificador ha ganado un botón que abre la lista de flujos en el flujo en cuestión. Disponible en cualquier rol ([Transcodificadores](../webui/monitor.md#webui-transcoders)).
- **El programa del demultiplexor se elige de una lista también para un adaptador DVB** — un adaptador en marcha publica su multiplex, y el campo «PNR» ofrece sus programas con sus nombres, incluidos los programas internos T2-MI bajo sus números compuestos ([Demultiplexor (demuxer)](../webui/io/internal.md#webui-io-demuxer)). El adaptador de una entrada `dvb` también se elige por su nombre en lugar de introducirse como número de registro ([Adaptador DVB (dvb)](../webui/io/local.md#webui-io-dvb)).
- **La recepción DVB ya no depende de la compilación** — el tipo de entrada `dvb` y la sección de adaptadores DVB están disponibles en cualquier nodo; la única condición es un frontend detectado y un controlador que permita al servicio abrirlo ([Receptor DVB](../streamer/dvb.md#streamer-dvb)).
- **El escáner DVB cede el sintonizador a un adaptador configurado** — un multiplex encontrado puede aplicarse sin esperar al final de la pasada: el adaptador toma el sintonizador y arranca en aproximadamente un segundo, mientras que la exploración termina como cancelada y conserva sus resultados en pantalla. Una pasada se detiene con el botón «Parar» y al cerrar la ventana ([Escaneo](../streamer/dvb.md#streamer-dvb-scan)).
- **Los paneles del resumen del nodo siguen la presencia del subsistema** — «Transcodificadores» y «Adaptadores DVB» aparecen en el resumen allí donde existe el propio equipamiento o las instancias, o donde hay un fallo que comunicar. En un nodo sin transcodificadores y sin sintonizador estos paneles no están, y tampoco la entrada a sus secciones desde el resumen ([Resumen del nodo](../webui/monitor.md#webui-overview)).
- **Direcciones de las interfaces en el monitor del sistema** — la tarjeta «Red» y los gráficos de historial llevan la dirección IPv4 de la interfaz cuando el nodo la comunica, incluidas las VLAN anidadas ([Monitor del sistema](../webui/monitor.md#webui-system)).
- **La ruta de un almacenamiento DVR se escribe sin separador final** — la interfaz y la API HTTP rechazan ese valor: dos escrituras de un mismo directorio pasarían la comprobación de unicidad como dos almacenamientos distintos ([Almacenes DVR](../webui/administration.md#webui-dvr-storages)).
- **El paquete necesita el servicio de protección 10.33 o más reciente** — **pstreamer** suministra las bibliotecas de nueva generación del sistema de protección, y un **aksusbd** más antiguo no las acepta ([Requisitos del sistema](../install/requirements.md#install-requirements)). El servicio está en el mismo repositorio y se instala junto con el paquete, pero su actualización es irreversible, sea cual sea el tipo de llave — el procedimiento y sus consecuencias se describen en las páginas de instalación ([Instalación en sistemas de la familia RHEL](../install/rhel.md#install-rhel), [Instalación en sistemas de la familia Debian](../install/debian.md#install-debian)).
- **Selección explícita del PLP en DVB-T2** — el campo «Stream id (ISI/PLP)» ha ganado un valor «auto» (-1): no se aplica ningún filtro, el sintonizador toma el flujo por defecto del controlador y un adaptador nuevo se crea justamente así. Un cero explícito ha pasado con ello a ser una selección real del flujo cero y no «sin definir», de modo que un adaptador con el cero guardado en sus ajustes pasará, tras actualizar el nodo, a recibir solo ese flujo ([Adaptadores](../streamer/dvb.md#streamer-dvb-adapter)).
- **El escáner encuentra los PLP** — el campo «Sondear PLP hasta» recorre los PLP de los transpondedores DVB-T2 y muestra cada uno de los encontrados en una fila aparte con su propia lista de programas; el número se traslada al adaptador creado, y las estadísticas del adaptador han ganado una línea «PLP / ISI» ([Escaneo](../streamer/dvb.md#streamer-dvb-scan)).
- **Búsqueda en los catálogos del escáner** — cientos de satélites y bandas regionales están ordenados por nombre y se filtran con una cadena de búsqueda; una fila ya seleccionada no desaparece de la lista, se escriba lo que se escriba ([Escaneo DVB](../webui/monitor.md#webui-dvb-scan)).
- **Corrección de la referencia al PCR en la PMT** — un nuevo ajuste MPEG-TS para fuentes cuya tabla no declara un PCR utilizable: el nodo declara en la PMT el PID en el que el PCR se transmite realmente ([Modificación del flujo](../streamer/spts.md#streamer-spts-modify)).
- **Reconstrucción del búfer de jitter tras una caída de la fuente** — una entrada que ha sobrevivido a una parada de su fuente ya no continúa con una cola casi vacía trasladando a las salidas cada nuevo tropiezo: el nodo reconstruye el búfer una sola vez, al precio de un único corte ([Sincronización](../streamer/spts.md#streamer-spts-sync)).
- **Modo de control del bitrate del codificador de vídeo** — el transcodificador ha ganado la elección entre una velocidad constante y dos modos variables: el número indicado se lee como el bitrate medio (los picos llegan a una vez y media ese valor) o como un techo estricto (la velocidad media resulta entonces dos tercios de él). El número sigue siendo uno solo — el codificador deduce él mismo el segundo límite de una relación fija pico/media de 1,5. En los modos variables el codificador deja de rellenar el flujo elemental, de modo que el ahorro de banda solo se obtiene allí donde el flujo receptor no vuelve a nivelar el bitrate ([Ajustes del codificador](../streamer/transcoder.md#streamer-transcoder-encoder)).
- **El reinicio del transcodificador se explica en el registro** — cada reinicio del proceso hijo nombra su causa y su código de salida en el nivel «Aviso», y no en silencio en la traza. Además, el nodo ha dejado de reabrir indefinidamente un canal que no responde: tras dos intentos fallidos solicita un proceso nuevo ([Supervisión del funcionamiento](../streamer/transcoder.md#streamer-transcoder-monitor)).
- **Un flujo eliminado se ve en el editor abierto** — si un flujo se elimina del nodo mientras su editor o su esquema de procesamiento está abierto, el nodo lo comunica en una línea aparte y guardar deja de estar disponible con la misma razón indicada junto al botón. Antes, todas las listas de ese flujo simplemente se vaciaban, lo que parecía un flujo sin entradas ni salidas configuradas ([Configurar flujo](../webui/streams.md#webui-stream-editor)).
- **Un guardado rechazado nombra su causa** — en lugar de una única frase general para todos los casos, el formulario indica qué lo impidió exactamente: un tiempo de espera de respuesta agotado, una prohibición por rol o el propio rechazo del nodo, con sus mismas palabras.
- **Etiquetas y selección de PID en las reglas de filtrado** — cada número lleva su tipo y su códec y, en un multiplex, también el programa al que pertenece; la fila de adición ha ganado la lista de los PID que la fuente transporta realmente. La introducción manual se mantiene: el transporte puede llevar un PID sobre el que no se ha decodificado nada ([Editor de entrada y salida](../webui/streams.md#webui-stream-io)).
- **Las pantallas DVB muestran el número de programa direccionable** — para un servicio dentro de una portadora T2-MI, la lista de programas del adaptador y sus estadísticas llevan el PNR compuesto, el mismo con el que el programa se direcciona en la selección del demultiplexor, de BISS y de CAM. Su número propio dentro de la portadora se repite en cada portadora de un transpondedor con grupos en espejo y no apunta a nada ([Estadísticas del adaptador](../webui/monitor.md#webui-dvb-stats)).
- **Un slot BISS siempre se ofrece como lista** — los programas en claro se han añadido en último lugar, marcados con `· clear ·`, de modo que en un multiplex sin un solo programa cifrado la lista ya no queda vacía: la clave suele introducirse por adelantado, y un feed de eventos está en claro entre eventos ([Descifrado](../streamer/dvb.md#streamer-dvb-descrambling)).
- **De las estadísticas del flujo al transcodificador y a su fuente** — si la entrada activa de un flujo la creó un transcodificador, su valor se ha convertido en un enlace a la pantalla de transcodificadores con la fila de la instancia correspondiente desplegada, y junto a él ha aparecido una placa con el nombre del flujo que esa instancia decodifica. Ambos enlaces están disponibles en cualquier rol ([Estadísticas del flujo](../webui/streams.md#webui-stream-stats)).
- **Límites de las ejecuciones en el registro** — cada arranque del servicio está marcado en el hilo con una línea propia que lleva el instante del arranque y la compilación con la que la ejecución se levantó: la actual muestra al lado su tiempo de funcionamiento, las pasadas indican cuánto trabajó la ejecución y cuánto estuvo parado el nodo hasta el siguiente arranque, y una ejecución terminada sin parada normal se marca aparte. El separador se coloca también con el filtro por gravedad activado ([Registros](../webui/monitor.md#webui-logs)).
- **Límite de tamaño de la base de estadísticas** — la base de métricas está acotada no solo por la ventana de retención, sino también por el tamaño. El nodo informa de la última limpieza — cuánto historial queda, cuál es el tamaño de la base y cuánto duró la limpieza — y dice expresamente si el límite de tamaño ha resultado más estricto que la ventana configurada ([Configuración del servidor](../webui/administration.md#webui-server-settings)).
- **Los valores recortados al cargar se anuncian de inmediato** — si el nodo, al leer los ajustes, llevó un valor hasta el límite admisible, lo comunica en pantalla justo después del arranque y no solo con una línea en el registro ([Comportamiento en el arranque y ante errores de configuración](../install/files.md#startup-config-errors)).
- **Una licencia de una generación obsoleta no se acepta** — un nodo con una licencia auténtica de la generación anterior no arranca y levanta una alerta propia. No es un plazo vencido ni una falsificación: la generación 2 solo se acepta como licencia de prueba temporal, por lo que una licencia perpetua de esa generación se rechaza de inmediato en lugar de vivir hasta su fecha ([Catálogo de códigos de alerta](../meshwork/alerts.md#meshwork-alert-codes)).
- **El relleno automático calcula su objetivo a partir del contenido** — en el modo automático de bitrate el nodo parte de la velocidad real del contenido y no de su propia salida, de modo que el objetivo ya no sube sin regresar y vuelve a bajar en cuanto el contenido cabe de nuevo en la velocidad configurada ([Control de la tasa de bits](../streamer/spts.md#streamer-spts-bitrate)).
- **La ventana de compensación de deriva es proporcional al búfer** — la ventana blanda está limitada a un cuarto del tamaño objetivo del búfer de jitter, pero nunca por debajo de 100 ms: una entrada con el búfer estándar ya no funciona sin margen, la compensación recupera la sincronización antes y la reconstrucción de emergencia del búfer al vaciarse por fin se dispara ([Sincronización](../streamer/spts.md#streamer-spts-sync)).
- Otras mejoras y correcciones de errores.
