---
title: Histórico de versões
url: https://doc2.pstreamer.tv/pt/manual/whats_new/index.html
lang: pt-BR
product: Perfect Streamer
version: 2.0.2.362
---

# Histórico de versões

## versão 2.0.2.362 Beta

*06.09.2026*

- **Menu do módulo CI** — o menu próprio do módulo é lido: estado do cartão, assinaturas, número de série, entrada do PIN e itens de serviço estão disponíveis diretamente na tela de hardware — o mesmo que o módulo mostraria na tela do televisor. Ali mesmo surgiu o passaporte do módulo — fabricante, código do produto e tipo de aplicação EN 50221 — e o nó decodifica seu nome, de modo que nomes cirílicos não chegam mais corrompidos ([Menu do módulo](../webui/administration.md#webui-hardware-cam-menu)).
- **Desembaralhamento por um módulo CI separado** — um módulo em um leitor de cartões autônomo atende qualquer entrada de um fluxo, e não apenas a recepção de uma placa DVB: por ele passa todo o transporte da entrada, ao passo que a lista de programas apenas indica quais deles desembaralhar. O slot é atribuído na própria entrada, e ali mesmo se vê qual entrada o ocupa ([CI/CAM na entrada de um fluxo](../webui/streams.md#webui-stream-io-cam)).
- **Vários slots CI em uma mesma entrada** — o multiplex é conduzido sucessivamente através de vários módulos, com seu próprio conjunto de programas para cada slot. A frequência de relógio do barramento CI é escolhida conforme o bitrate real da entrada, e um slot que tenha ficado ocupado é liberado mediante solicitação a partir da tela de hardware.
- **Tabelas de serviço na demultiplexação** — as tabelas de rede e de hora e os demais PID de serviço do multiplex de origem passam a obedecer às mesmas chaves `mpegts-filter-nit`, `mpegts-filter-tdt`, `mpegts-filter-unnecessary` e `mpegts-filter-cat` que nos demais caminhos, em vez de serem descartadas incondicionalmente. Com isso o padrão mudou: um fluxo extraído de um multiplex carrega as tabelas de rede e de hora que antes não carregava — um receptor por trás desse fluxo, e um módulo CI em primeiro lugar, espera vê-las. O comportamento anterior é restabelecido por `mpegts-filter-nit`.
- **Uma descontinuidade de PCR não esvazia mais o buffer de jitter** — uma entrada que captou um salto de PCR para a frente desloca o ponto de sincronização em pleno funcionamento, sem drenar a fila, de modo que a descontinuidade custa um único tropeço em vez de um novo enchimento do buffer. A janela a partir da qual um salto conta como descontinuidade é escolhida automaticamente ([Sincronização](../streamer/spts.md#streamer-spts-sync)).
- **Partida rápida de uma entrada HLS** — uma playlist ao vivo é retomada pela cauda: entram na fila apenas os últimos segmentos necessários para o jitter configurado, e não a janela inteira, de modo que a entrada vai ao ar com um atraso de alguns segmentos em vez de uma janela inteira da playlist. Uma playlist concluída (VOD) continua sendo reproduzida desde o início.
- **Supressão da oscilação de alertas** — um alerta que se levanta e se resolve repetidamente é dobrado em um único incidente: o nó o mantém durante a calmaria e o fecha apenas quando a oscilação de fato cessou. Uma tempestade de repetições não se espalha nem pelo registro nem pelos canais externos. Uma fonte oscilante, uma vez reconhecida, continua reconhecida após a calmaria: a série seguinte dela é mantida desde a primeira repetição.
- **Edição de um canal de EPG** — ao canal são atribuídos um identificador XMLTV separado do nome exibido e denominações por idioma, e um canal desnecessário é excluído por inteiro: com ele vão suas denominações, seus eventos e sua participação em conjuntos.
- Outras melhorias e correções de erros.

## versão 2.0.2.335 Beta

*27.08.2026*

- **Meshwork (multidomínio)** — vários servidores são reunidos em domínios nomeados, e o domínio serve de fronteira de isolamento: a filiação dos nós, o catálogo de recursos e os alertas propagam-se somente dentro do próprio domínio, e nada é transmitido entre domínios. Um nó pode integrar vários domínios ao mesmo tempo, sem misturar seus dados. Em detalhes — [Meshwork](../meshwork/index.md#meshwork).
- **Autodescoberta de nós** — basta definir o domínio e um único ponto de entrada: os nós trocam listas de vizinhos e constroem por conta própria uma malha totalmente conectada de ligações diretas. A chave comum do domínio é gerada automaticamente e é transmitida apenas por um canal protegido — TLS ou um segmento confiável da rede local.
- **Biblioteca de recursos distribuída** — as saídas UDP, RTP, Pro-MPEG e RIST, as entradas multicast UDP, RTP e RIST, bem como as ligações PS1 e SRT são publicadas no catálogo comum do domínio (`/data/library`): uma lista única de grupos multicast, portas, VLANs, fontes SSM e ligações ponto a ponto com a indicação do nó e do fluxo. Pelo catálogo vê-se quais endereços e portas já estão ocupados, e uma nova entrada é conectada diretamente a partir dele — pela escolha de um fluxo já entregue em outro nó do domínio, sem digitar o endereço manualmente.
- **Visão geral dos nós do domínio** — para cada nó são exibidos o status, o horário do último contato, o papel, a região, a versão da compilação, o tempo de funcionamento desde a inicialização, a carga de CPU, o tráfego por interface física e o número de fluxos no ar, e para cada ligação entre nós PS1 ou SRT — o bitrate, o RTT, a proporção de retransmissões e perdas e um veredicto sobre o seu estado. Um nó que caiu não desaparece da lista: ele permanece nela como inacessível, junto com o seu alerta, por sete dias, e um nó retirado de operação é removido da visão geral por um comando próprio.
- **Operação através de NAT** — um nó atrás de NAT participa plenamente do domínio e sem encaminhamento de portas de entrada: ele mesmo se conecta, o ponto de acesso público é montado a partir do endereço efetivamente observado e da porta anunciada, e os vizinhos retransmitem o seu estado por um salto — o nó é visível também para aqueles que não conseguem alcançá-lo diretamente.
- **Nome do nó a partir do certificado** — um nó sem nome de host configurado anuncia aos seus peers o nome coberto pelo seu próprio certificado, e somente depois que esse nome é resolvido de volta para ele; o resultado da verificação aparece nos dados do servidor como `cert-host` e `cert-host-refused`.
- **Login automático das ligações dentro do domínio** — para as ligações PS1 e SRT entre nós de um mesmo domínio não é necessário criar login e senha para cada ligação: no lado chamador (entrada PS1, entrada SRT, saída SRT no modo caller) basta ativar a configuração «Meshwork peer auth», e a autorização é feita pelo segredo comum do domínio. O nó parceiro confirmado e o seu fluxo ficam visíveis na biblioteca de recursos e na lista de sessões.
- **Low-Latency HLS e MPEG-DASH sobre CMAF** — novo modo de distribuição «OTT / LL-HLS / DASH»: o multiplexador integrado forma um MP4 fragmentado (CMAF), sobre o qual são entregues MPEG-DASH em `/dash` e Low-Latency HLS em `/llhls`; os pacotes adaptativos também são montados para esses formatos. Em detalhes — [Modos de distribuição](../streamer/ott_dvr.md#streamer-ott-modes).
- **Baixa latência do LL-HLS** — a playlist de mídia é dividida em partes, são aplicados o recarregamento bloqueante da playlist e a dica de pré-carregamento, de modo que o player inicia a reprodução sem aguardar que o segmento completo esteja pronto. Os segmentos CMAF transportam Producer Reference Time, o manifesto DASH anuncia UTCTiming e a latência-alvo, e a configuração «Duração-alvo da parte LL (ms)» é aplicada em tempo real, sem reiniciar o fluxo.
- **HTTP/3 (QUIC)** — HLS, MPEG-DASH, LL-HLS e MPEG-TS over HTTP são entregues sobre QUIC em uma porta UDP própria, com 0-RTT opcional; o cliente solicita a mudança para QUIC pelo parâmetro `?h3`. O QUIC só funciona sobre TLS: com o TLS desligado o listener não é levantado nem oferecido ao cliente, e o seu estado real aparece nos dados do servidor HTTP, e não apenas na configuração. As rotas administrativas permanecem somente em TCP.
- **Alinhamento dos segmentos pelo IDR** — o segmentador distingue o IDR do quadro I comum: em fontes com closed-GOP cada segmento começa por um ponto de entrada pleno, de modo que o player abre o fluxo a partir de qualquer segmento; em fontes com open-GOP o limite é o quadro I mais próximo.
- **Proteção de conteúdo (DRM)** — a distribuição OTT do fluxo pode ser criptografada: HLS AES-128 com uma chave do próprio servidor ou de um servidor de chaves externo e com rotação opcional por janelas de tempo, ou MPEG Common Encryption (ISO/IEC 23001-7) pelos esquemas cenc e cbcs para CMAF e DASH. A criptografia é executada uma única vez, no momento da formação do segmento, de modo que o arquivo DVR é armazenado criptografado e sobrevive a qualquer número de rotações de chave. Em detalhes — [Proteção de conteúdo (DRM)](../streamer/ott_dvr.md#streamer-ott-drm).
- **Cada conexão MPEG-TS over HTTP é uma sessão própria** — a lista de clientes do fluxo agora tem uma linha por conexão com o seu próprio `sess-id`, os detalhes ficam disponíveis em `/data/stream/http-clients/<sess-id>`, uma conexão isolada é fechada com `POST /data/kick?sess-id=<id>` e o limite `max-conn` é respeitado também com valores maiores que um.
- **DVR (arquivo em rede)** — cada canal OTT é gravado em disco em paralelo com a distribuição, com a mesma segmentação e sem um gravador separado; no modo de baixa latência o arquivo é mantido em duas linhas, MPEG-TS e CMAF, de modo que a gravação fica disponível no mesmo contêiner que a transmissão ao vivo. Em detalhes — [DVR](../streamer/ott_dvr.md#streamer-dvr).
- **Reprodução do arquivo (VOD)** — o arquivo é entregue pelas mesmas URLs HLS, DASH e LL-HLS que a transmissão ao vivo: `t=<tempo>` ativa o modo VOD e define o início da janela, `d=<segundos>` — a sua duração. A playlist HLS é então fechada, o manifesto DASH é estático e as interrupções da gravação são apresentadas como períodos separados; os pacotes adaptativos reproduzem o arquivo com os mesmos parâmetros.
- **Catch-up por EPG** — em vez de `t` e `d` basta passar `epg=<tempo>`: o próprio servidor encontra no canal EPG vinculado o programa que está no ar naquele momento e toma o seu início e a sua duração como limites da janela de reprodução.
- **Legendas no arquivo** — as faixas WebVTT são gravadas em disco junto com os segmentos e são reproduzidas em VOD pelas mesmas URLs; as janelas sem falas não ocupam espaço em disco.
- **Armazenamentos DVR** — pode haver vários armazenamentos, cada um com o seu próprio limite de preenchimento e a sua própria ordem de limpeza. A profundidade do arquivo («Retenção (horas)», até 90 dias) e o mínimo protegido são definidos separadamente para cada fluxo, e a limpeza por espaço livre não toca nem no mínimo protegido nem nas janelas das sessões VOD abertas.
- **Monitor de DVR** — uma tela dedicada mostra o estado e o preenchimento dos armazenamentos, o volume e a profundidade do arquivo por fluxo e as latências de leitura e de gravação, enquanto o histograma de cobertura (`/data/dvrstat`) assinala não apenas as lacunas do arquivo, mas também a sua causa — perda da entrada, troca do PMT, embaralhamento, acionamento da limpeza. Da mesma tela são apagados o arquivo de um fluxo individual e os diretórios dos fluxos removidos.
- **Uma falha de disco do arquivo não para mais o nó** — um erro no atendimento ao arquivo DVR fica restrito ao armazenamento e à etapa em que ocorreu: os demais fluxos e as demais linhas de gravação continuam funcionando, e o arquivo afetado é marcado como necessitando de reconstrução.
- **Alertador** — novo serviço de alertas: cada falha torna-se um incidente que é gerado, atualizado e resolvido automaticamente, enquanto o conjunto ativo deduplicado mostra apenas o que está acontecendo agora. A gravidade é definida por uma escala única — da informativa à que exige intervenção do administrador; tal incidente é resolvido pela confirmação do operador. Em detalhes — [Alertas (alerter)](../meshwork/alerts.md#meshwork-alerts).
- **Catálogo de códigos de falhas** — mais de cinquenta tipos de incidentes em uma única lista: os fluxos e as suas entradas e saídas, as violações da TR 101 290, os recursos do nó, os armazenamentos e a saúde da gravação DVR, a recepção DVB e CI/CAM, os transcodificadores, o OTT, os certificados e os nós do domínio. Os limiares de acionamento são configurados na seção de alertas.
- **Entrega externa de alertas** — os alertas saem para fora do console web: por e-mail via SMTP (STARTTLS, implicit TLS, AUTH), por mensagem no Telegram e pela execução de um comando arbitrário, ao qual o incidente é passado em variáveis de ambiente e como JSON completo na entrada padrão. Cada canal tem o seu próprio interruptor e o seu próprio limiar de gravidade.
- **Alertas de todo o domínio** — o operador de plantão vê os alertas de qualquer nó a partir de qualquer outro: o conjunto ativo propaga-se junto com o keep-alive e é resolvido assim que desaparece na origem, e cada linha indica o nó de origem. Os alertas de hardware e de sistema permanecem locais por padrão e são promovidos ao nível do domínio por uma configuração separada.
- **Registro em banco de dados** — as mensagens do serviço são gravadas em SQLite: registros tipados com a fonte e o nível de gravidade, agrupamento das repetições consecutivas em uma única linha com contador, retenção limitada por prazo e por volume. Ao contrário do conjunto ativo de alertas, o registro sobrevive a um reinício.
- **Interruptor geral das notificações** — com `enable` desligado nas configurações do alertador, o nó não gera alertas próprios nem envia nada para fora, inclusive os alertas recebidos dos seus peers do domínio; na lista e no fluxo de eventos permanecem apenas os alertas dos peers distribuídos pelo domínio.
- **A gravidade de um alerta de entrada/saída segue as consequências** — uma entrada que falha enquanto não está conduzindo o fluxo é marcada como Error, ao passo que uma entrada condutora, qualquer saída e uma falha sem transmissão são marcadas como Critical; a avaliação é recalculada enquanto o alerta está aberto e acompanha a comutação para a reserva.
- **Cor nas notificações externas** — ao texto da mensagem foi acrescentado um marcador de cor do nível (vermelho para erros, amarelo para avisos, verde para a baixa, azul para informativos), e o e-mail sai em duas variantes ao mesmo tempo: texto simples e HTML com uma faixa colorida.
- **As notificações no Telegram sobrevivem a uma tempestade** — os alertas acumulados são combinados no menor número de mensagens que o limite de 4096 caracteres permite, e diante de uma resposta de limitação de frequência o nó aguarda o tempo indicado e repete o envio em vez de descartar a notificação.
- **O atraso da notificação passa a valer para a entrada de reserva** — o aviso de que um fluxo está funcionando na sua entrada de reserva só é levantado se a situação durar mais que `alert-delay`, de modo que uma fonte que se recupera e cai de novo não produz mais uma sequência de aberturas e baixas; com `alert-delay` igual a zero o comportamento é o anterior.
- **Monitor TR 101 290** — controle contínuo da conformidade do fluxo de entrada com a norma: um veredito único («Normal», «Problema», «Verificando…») e um relatório estruturado por prioridades 1, 2 e 3, no qual são indicados, para cada indicador, o item da norma, o valor medido e o limite. Um multiplex MPTS é avaliado por inteiro — por todos os PID, programas e tabelas SI. O fluxo é classificado automaticamente como CBR ou VBR, e as verificações que só fazem sentido com bitrate constante não são avaliadas em uma fonte VBR e não produzem acionamentos falsos. Em detalhes — [Monitor TR 101 290](../streamer/analyzer.md#streamer-analyzer-tr101290).
- **Deriva do oscilador de referência** — o desvio sistemático da frequência de relógio da fonte é medido por regressão linear em ppm com a tolerância da ISO/IEC 13818-1 de ±30 ppm e é apresentado como uma métrica separada. Um desvio lento é tratado por microdeslocamentos suaves do ponto de sincronização («Compensação da deriva de sincronização», ativada por padrão), de modo que não há solavancos na saída.
- **Modelo de buffer T-STD** — análise do buffer de vídeo do decodificador de referência conforme a ISO/IEC 13818-1, com contadores de estouro e de esvaziamento para MPEG-2, H.264 e HEVC; a contagem é feita pelo relógio do PCR, e a velocidade de escoamento acompanha o bitrate real do vídeo. É ativado pela configuração «Analisar o buffer de vídeo T-STD».
- **Análise para a inserção de publicidade** — interpretação das seções SCTE-35 com eventos de emenda, pontos de emenda do nível de transporte com notificação antecipada configurável e indicadores de acesso aleatório. Os dados são exibidos nas estatísticas do fluxo quando a análise profunda está ativada.
- **Assistente de reclamações** — para um fluxo com violações persistentes é gerado um texto-instrução pronto para um chat de IA, a partir do qual este redige uma carta formal de reclamação ao fornecedor do fluxo: a lista das violações persistentes, os valores medidos, os itens da norma e o impacto sobre o decodificador. A instrução é entregue pela requisição `GET /data/stream/<id>/ai-complaint-prompt`; o nome do fluxo e o endereço da fonte não são incluídos no texto.
- **CI/CAM (EN 50221)** — host Common Interface integrado: detecção do módulo, leitura do seu nome e da lista de CA_system_id suportados, seleção dos programas para desembaralhamento e envio do CA_PMT para cada um deles. Um módulo combinado com o receptor DVB desembaralha inline os programas selecionados do multiplex recebido, vários ao mesmo tempo; o estado dos slots e o veredito de cada programa são visíveis na interface.
- **Desembaralhador por software BISS-1 / BISS-E** — aplica-se não apenas à recepção a partir de uma placa DVB, mas a qualquer entrada de fluxo: a chave é definida para todo o SPTS ou por programas do multiplex e é alterada em tempo real, sem reiniciar a entrada. Na recepção a partir de uma placa DVB o resultado é adicionalmente verificado no próprio fluxo, de modo que uma chave incorreta não parece um desembaralhamento bem-sucedido, mas gera um alerta específico.
- **Limpeza do acesso condicional na recepção DVB** — por uma configuração separada do adaptador, os PID ECM e EMM são removidos do multiplex recebido pela placa DVB, e os descritores CA dos programas abertos são removidos do PMT: adiante no percurso segue um fluxo FTA limpo. Em caso de perda da chave, a sinalização de acesso condicional é restaurada para que um receptor mais adiante na cadeia possa solicitar acesso novamente.
- **Telemetria do transcodificador** — para cada codificador são publicadas as informações de mídia da saída recodificada: o formato do quadro, o codec de vídeo, o conjunto de codecs de áudio e o bitrate atual, e para cada processo — a carga de CPU e a memória ocupada.
- **RTMP e RTMPS** — o canal é publicado em qualquer receptor RTMP, incluindo YouTube e Facebook: vídeo H.264 ou HEVC (HEVC — via Enhanced RTMP) e uma única faixa AAC; para `rtmps://` o nó conecta-se como cliente TLS. No sentido inverso, a própria entrada busca o fluxo da fonte `rtmp://` ou `rtmps://` e remultiplexa FLV para MPEG-TS.
- **Comutação de fonte sem interrupção** — ao trocar a entrada ativa no emissor, os peers PS1 receptores não se reconectam: a numeração e as marcas de tempo permanecem contínuas, um pico da fila é absorvido pelo descarte dos pacotes mais antigos, e a lacuna é completada pela retransmissão comum.
- **Retransmissão adaptativa PS1** — o receptor mede o RTT real até o emissor e ajusta a ele, por conta própria, os intervalos das requisições de repetição; o RTT medido, o intervalo atual de nova requisição e o indicador de latência insuficiente são apresentados nas estatísticas da ligação. A latência do túnel de recepção é definida diretamente em milissegundos, em vez do antigo múltiplo do RTT.
- **Os estados «Reconectando» e «Ação do administrador»** — uma entrada ou saída que perdeu a sua fonte é reaberta no lugar e permanece no estado «Reconectando» durante todo o tempo das tentativas, gerando um único aviso por episódio em vez de uma mensagem a cada tentativa. Uma causa que a repetição não elimina — porta ocupada, interface ausente, dados que não são MPEG-TS, recusa do SRT por criptografia — o nó transfere para o estado «Ação do administrador» com um alerta persistente, e a edição das configurações é aplicada imediatamente.
- **Data do último erro** — junto ao texto do último erro de uma entrada ou de uma saída é publicado o seu horário (`last-error-ts`, o mesmo campo existe também no fluxo de eventos), de modo que uma causa antiga que ficou em uma entrada pausada é vista separadamente da falha atual.
- **Diagnóstico quando o conteúdo da entrada é inservível** — a mensagem sobre a perda de sincronização MPEG-TS nomeia a causa provável: pacotes foram encontrados, mas estão deslocados por um número conhecido de bytes, ou não há estrutura MPEG-TS alguma; para as entradas PS1 e Pro-MPEG é acrescentada uma dica sobre a frase secreta da criptografia.
- **Tamanho real do buffer de recepção** — a entrada publica `socket-buffer-actual`, o tamanho concedido pelo kernel, ao passo que `socket-buffer-size` continua sendo apenas um pedido e é cortado pelo limite do sistema; a divergência passa a ser vista de imediato em vez de aparecer como perdas em bitrate alto.
- **Multiplexador MPTS: identidade original** — os programas podem manter os seus PID originais, e a ordem dos programas no PAT, no SDT e no NIT é definida manualmente, de modo que o multiplex é migrado para o **Perfect Streamer** sem alterar a identidade do fluxo para o equipamento receptor. Os programas com embaralhamento TS são migrados com as suas marcas de tempo originais.
- **Numeração automática de PID para SPTS** — o `enable-autopid` junto com o `autopid-base` move todo o programa para uma janela previsível de 64 identificadores, começando pela PMT e depois vídeo, áudio e os demais fluxos elementares na ordem da tabela original; um programa que não couber na janela mantém integralmente os seus PID originais.
- **O tamanho do datagrama é definido em todas as saídas** — a configuração `packets` agora se aplica não só ao SRT, mas também às saídas UDP, RTP, Pro-MPEG e RIST, e na saída para arquivo e para o fluxo padrão define o tamanho do bloco gravado. Os valores padrão coincidem com o comportamento anterior, portanto uma configuração em que a chave nunca foi definida não muda; um valor salvo diferente do padrão era ignorado pelas compilações anteriores e agora entra em vigor no primeiro reinício — verifique-o antes de atualizar.
- **Integração com faturamento externo** — cada sessão de espectador é autorizada em um sistema externo de faturamento ou CRM, é mantida por reautorização periódica e, ao terminar, é comunicada a esse mesmo sistema: ciclo de vida Start / Interim / Stop no estilo RADIUS; a revogação da assinatura encerra a sessão no meio da exibição. São abrangidos o OTT, o peering PS1 e as saídas SRT, e o próprio sistema de faturamento é conectado por modelos de requisição e de análise da resposta, sem modificação do software.
- **Cliente ACME integrado (Let’s Encrypt)** — emissão e renovação automática dos certificados para o servidor web, o servidor HTTP/OTT e o servidor EPG: o certificado é solicitado para cada nome de host configurado, a renovação é verificada diariamente e, em caso de insucesso, é gerado um alerta. São suportados uma autoridade certificadora arbitrária e a vinculação externa da conta, e o novo certificado é aplicado sem reiniciar o serviço.
- **Parada rápida do serviço** — a parada não espera mais por um cliente que deixou de ler os dados: sob a mesma carga o nó termina em 2–4 segundos em vez de cerca de um minuto, por isso um reinício leva segundos e não deixa a transmissão fora do ar.
- **pss_lic 2.0** — o utilitário de console para gerenciar a licença passou aos comandos `apply`, `c2v`, `fingerprint`, `recipient`, `keys`, `detach`, `rehost` e `cancel` com opções longas: ele aplica uma atualização de licença recebida, exporta o estado da chave para o fornecedor e transfere a licença de um nó para outro, inclusive temporariamente, e aceita qualquer arquivo na entrada padrão e escreve na saída padrão. Em detalhe — [pss_lic](../toolkit/pss_lic.md#toolkit-pss-lic).
- **Edição manual do arquivo de configuração** — junto com a documentação é publicado um JSON Schema para `pss.json` (estrito e compatível) e um guia passo a passo para editar e transferir o arquivo: a configuração de um nó parado pode agora ser editada diretamente e transferida entre instalações e versões, depois de verificado o resultado pelo esquema, ao passo que antes a API HTTP era a única forma suportada. Em detalhe — [O arquivo de configuração pss.json](../extras/config_file.md#extras-config-file).
- **Nova interface web** — o gerenciamento do nó foi transferido para um novo console, que se abre no endereço do nó (caminho `/admin`): visão geral, fluxos, monitoramento do sistema, DVB, DVR, transcodificadores, clientes, registro, alertas e todas as configurações do servidor. Diagramas dedicados mostram a topologia do domínio Meshwork e o percurso do fluxo selecionado, das entradas às saídas. A interface anterior foi preservada no endereço `/classic`. Em detalhes — [Interface web](../webui/index.md#webui).
- **Login único no domínio** — uma conta pode receber permissão de login automático: após um único login com senha, o navegador abre o painel deste nó sem o formulário de login por 14 dias e sobrevive a uma reinicialização. Seguir um link desse painel passa a sessão para um nó vizinho do domínio se as condições da passagem forem atendidas ([Servidor web e contas](../webui/administration.md#webui-web-server)); um endereço de vizinho digitado à mão não passa a sessão. Um script ou um painel de terceiros apresenta a mesma chave no cabeçalho `X-Auth-Token` ou no parâmetro `auth-token`, e um administrador revoga o login automático em todo o domínio de uma só vez.
- **CORS para a API administrativa** — os nós de um mesmo domínio Meshwork são permitidos sem nenhuma configuração, as demais origens são listadas em `web-server/cors-origin` (o valor `*` permite qualquer origem, `none` desliga o mecanismo), de modo que a interface de um nó acessa a API de outro; uma requisição entre domínios precisa levar o token explicitamente — cookie e Digest não funcionam nela.
- **Token da própria sessão** — `GET /data/auth-token` devolve ao cliente o seu próprio token e o prazo absoluto de validade, e em `/data/server` foi acrescentado o campo `web-login-expires`, de modo que a interface mostra até quando o login é válido sem ler o próprio token.
- **Encerramento de uma sessão de login automático** — `POST /data/auth-tokens/revoke?login=<login>` fecha todas as sessões ativas de uma conta, e `?id=<hex>` fecha uma pelo identificador da lista de sessões; na resposta vem o número de sessões fechadas, e a revogação se propaga por todo o domínio.
- **Motivo da recusa ao passar para um nó vizinho** — se a passagem não resultou em login automático, o nó devolve no endereço um parâmetro `jump` com o valor `no-session`, `foreign-domain`, `autologin-off` ou `token-refused`, em vez de mostrar silenciosamente o formulário de senha.
- **Atualização em tempo real** — o nó publica o seu estado como um fluxo de eventos em `/data/events`: na conexão chega um instantâneo completo, depois, uma vez por segundo, são atualizados os quadros dos fluxos, dos recursos do sistema, dos clientes e dos adaptadores DVB, enquanto os alertas e as mudanças de estado chegam como eventos. A interface e os painéis externos funcionam sem consulta periódica.
- **Ajuda contextual** — cada tela e cada janela importante da nova interface dispõem de uma chamada de ajuda que abre a seção da documentação correspondente exatamente ao que está aberto no momento: o botão geral de ajuda — para a tela, o botão «?» no cabeçalho da janela — para essa janela. A seção abre-se no idioma da interface.
- **Idiomas, temas e layouts** — a interface está traduzida para seis idiomas (russo, inglês, alemão, francês, espanhol, português), suporta os temas claro e escuro e ajusta por conta própria a densidade do layout ao telefone, ao tablet, à estação de trabalho e ao videowall.
- **Acesso sem limite do número de conexões** — os limites de conexões do destinatário ganharam um terceiro estado, «Sem limite», ao lado de «Protocolo proibido» e «No máximo» com um número; antes o acesso ilimitado era representado por um número deliberadamente grande. Zero continua significando a proibição do protocolo, de modo que o sentido das configurações salvas não muda após a atualização. Em detalhe — [Usuário: adicionar e alterar](../webui/configure.md#webui-user-editor).
- **A edição do acesso aos fluxos não afeta sessões alheias** — acrescentar um fluxo à lista de permitidos e voltar a uma lista vazia não rompem nenhuma sessão, e estreitar a lista fecha as sessões PS1 e SRT apenas nos fluxos que saíram dela. Antes, qualquer edição da lista desconectava a conta por inteiro em todos os protocolos.
- **Ativação da licença pela interface web** — a tela «Licença» ganhou uma seção «Ativação»: a exportação do estado da chave para o fornecedor — como arquivo C2V ou para a área de transferência — e a aplicação da chave V2C recebida, por arquivo ou colando o texto. A aplicação da chave reinicia o nó. Em detalhe — [Licença](../webui/administration.md#webui-license).
- **Aviso de vencimento da licença** — o nó gera um alerta duas semanas antes do fim do prazo e o eleva ao nível que requer intervenção quando o prazo termina. O alerta é replicado pelo domínio, de modo que a licença vencendo de um vizinho é visível de qualquer nó ([Alertas (alerter)](../meshwork/alerts.md#meshwork-alerts)).
- **Uma licença considerada não autêntica para o nó** — um nó cuja licença é considerada não autêntica levanta um alerta que requer ação do administrador, reinicia o serviço e a inicialização é recusada: o serviço permanece parado até que haja uma licença autêntica no nó. O alerta é replicado por todo o domínio ([Alertas (alerter)](../meshwork/alerts.md#meshwork-alerts)).
- **Retorno à última configuração operacional** — o nó guarda uma cópia das configurações com que iniciou de forma limpa da última vez e, quando o `pss.json` é inaceitável, sobe com ela — com todos os seus fluxos, e não com as configurações padrão, que não contêm fluxos. O arquivo de arquivos rejeitados foi colocado em ordem: nomes em UTC, sufixo numérico em vez de sobrescrita quando duas falhas caem no mesmo segundo, as vinte cópias mais recentes; o alerta indica diretamente o caminho da cópia arquivada. Em detalhe — [Comportamento na inicialização e em erros de configuração](../install/files.md#startup-config-errors).
- **A prioridade das entradas é editada com o mouse e pelo teclado** — o administrador pode reordenar as entradas de um fluxo arrastando ou com `Alt+↑` e `Alt+↓`, na aba «Entradas» do editor e na linha expandida da lista de fluxos (no telefone a ordem apenas é exibida); uma entrada adicionada fica sempre por último e nunca substitui a principal ([Fluxos](../webui/streams.md#webui-streams)).
- **O número de uma entrada é o seu lugar na lista de redundância** — um mesmo número aparece agora na linha do fluxo, na linha expandida, no editor e no texto do alerta. As entradas com o mesmo valor de prioridade mantêm a ordem em que estão registradas, inclusive nas edições posteriores das configurações ([Redundância de fontes](../streamer/spts.md#streamer-spts-reservation)).
- **A falha de uma entrada abandonada lê-se como histórico** — a entrada de que o fluxo saiu ao passar para a reserva é parada, mas mantém a sua causa: a interface a exibe como uma linha esmaecida com a idade, e não como uma falha atual, e o alerta sobre o erro dessa entrada é retirado. A causa é então a sua própria, de transporte, se a entrada chegou a informá-la ([Redundância de fontes](../streamer/spts.md#streamer-spts-reservation)).
- **Ordenação da lista de clientes** — na tela «Clientes» o cabeçalho da coluna ordena a lista: as colunas numéricas abrem em ordem decrescente, as de texto de A a Z, e o terceiro clique devolve a ordem do nó. É ordenada toda a lista encontrada, e não a página exibida ([Clientes](../webui/monitor.md#webui-clients)).
- **Ir para o fluxo a partir da tela de transcodificadores** — a linha do decodificador e de cada codificador ganhou um botão que abre a lista de fluxos no fluxo em questão. Disponível em qualquer papel ([Transcodificadores](../webui/monitor.md#webui-transcoders)).
- **O programa do demultiplexador é escolhido em uma lista também para um adaptador DVB** — um adaptador em funcionamento publica o seu multiplex, e o campo «PNR» oferece os seus programas com os nomes, incluindo os programas internos T2-MI sob os seus números compostos ([Demultiplexador (demuxer)](../webui/io/internal.md#webui-io-demuxer)). O adaptador de uma entrada `dvb` também é escolhido pelo nome, em vez de ser digitado como número de registro ([Adaptador DVB (dvb)](../webui/io/local.md#webui-io-dvb)).
- **A recepção DVB não depende mais da compilação** — o tipo de entrada `dvb` e a seção de adaptadores DVB estão disponíveis em qualquer nó; a única condição é um frontend detectado e um driver que permita ao serviço abri-lo ([Receptor DVB](../streamer/dvb.md#streamer-dvb)).
- **O scanner DVB cede o sintonizador a um adaptador configurado** — um multiplex encontrado pode ser aplicado sem esperar o fim da passagem: o adaptador toma o sintonizador e sobe em cerca de um segundo, enquanto a varredura termina como cancelada, mantendo os seus resultados na tela. Uma passagem é interrompida com o botão «Parar» e ao fechar a janela ([Pesquisa](../streamer/dvb.md#streamer-dvb-scan)).
- **Os painéis do panorama do nó seguem a presença do subsistema** — «Transcodificadores» e «Adaptadores DVB» aparecem no panorama onde existe o próprio equipamento ou as instâncias, ou onde há uma falha a relatar. Em um nó sem transcodificadores e sem sintonizador esses painéis não existem, e tampouco a entrada para as suas seções a partir do panorama ([Visão geral do nó](../webui/monitor.md#webui-overview)).
- **Endereços das interfaces no monitor do sistema** — o cartão «Rede» e os gráficos de histórico levam o endereço IPv4 da interface quando o nó o informa, incluindo as VLANs aninhadas ([Monitor do Sistema](../webui/monitor.md#webui-system)).
- **O caminho de um armazenamento DVR é escrito sem separador final** — a interface e a API HTTP rejeitam esse valor: duas grafias de um mesmo diretório passariam pela verificação de unicidade como dois armazenamentos diferentes ([Armazenamentos DVR](../webui/administration.md#webui-dvr-storages)).
- **O pacote precisa do serviço de proteção 10.33 ou mais recente** — o **pstreamer** fornece as bibliotecas de nova geração do sistema de proteção, e um **aksusbd** mais antigo não as aceita ([Requisitos do sistema](../install/requirements.md#install-requirements)). O serviço está no mesmo repositório e é instalado junto com o pacote, mas a sua atualização é irreversível, qualquer que seja o tipo de chave — o procedimento e as consequências estão descritos nas páginas de instalação ([Instalação em sistemas da família RHEL](../install/rhel.md#install-rhel), [Instalação em sistemas da família Debian](../install/debian.md#install-debian)).
- **Seleção explícita do PLP em DVB-T2** — o campo «Stream id (ISI/PLP)» ganhou o valor «auto» (-1): nenhum filtro é aplicado, o sintonizador toma o fluxo padrão do driver, e um adaptador novo é criado exatamente assim. Um zero explícito passou com isso a ser uma seleção real do fluxo zero, e não «não definido», de modo que um adaptador com zero salvo nas configurações passará, após a atualização do nó, a receber apenas esse fluxo ([Adaptadores](../streamer/dvb.md#streamer-dvb-adapter)).
- **O scanner encontra os PLPs** — o campo «Verificar PLP até» percorre os PLPs nos transponders DVB-T2 e exibe cada um encontrado em uma linha separada com a sua própria lista de programas; o número é transferido para o adaptador criado, e as estatísticas do adaptador ganharam uma linha «PLP / ISI» ([Pesquisa](../streamer/dvb.md#streamer-dvb-scan)).
- **Busca nos catálogos do scanner** — centenas de satélites e faixas regionais estão ordenados por nome e são filtrados por uma cadeia de busca; uma linha já selecionada não desaparece da lista, seja lá o que for digitado ([Varredura DVB](../webui/monitor.md#webui-dvb-scan)).
- **Correção da referência ao PCR na PMT** — uma nova configuração MPEG-TS para fontes cuja tabela não declara um PCR utilizável: o nó declara na PMT o PID em que o PCR é realmente transmitido ([Modificação do fluxo](../streamer/spts.md#streamer-spts-modify)).
- **Reconstrução do buffer de jitter após uma queda da fonte** — uma entrada que sobreviveu a uma parada da sua fonte já não segue com uma fila quase vazia, repassando às saídas cada nova falha: o nó reconstrói o buffer uma única vez, ao custo de um único corte ([Sincronização](../streamer/spts.md#streamer-spts-sync)).
- **Modo de controle de bitrate do codificador de vídeo** — o transcodificador ganhou a escolha entre uma taxa constante e dois modos variáveis: o número informado é lido como o bitrate médio (os picos chegam a uma vez e meia esse valor) ou como um teto rígido (a taxa média fica então em dois terços dele). O número continua sendo apenas um — o codificador deduz o segundo limite a partir de uma relação fixa entre pico e média de 1,5. Nos modos variáveis o codificador deixa de preencher o fluxo elementar, de modo que a economia de banda só ocorre onde o fluxo receptor não nivela o bitrate de volta ([Configurações do codificador](../streamer/transcoder.md#streamer-transcoder-encoder)).
- **O reinício do transcodificador é explicado no registro** — cada reinício do processo filho indica a sua causa e o seu código de saída no nível «Notificação», e não em silêncio no rastreamento. Além disso, o nó deixou de reabrir indefinidamente um canal que não responde: após duas tentativas malsucedidas, ele solicita um novo processo ([Controle do funcionamento](../streamer/transcoder.md#streamer-transcoder-monitor)).
- **Um fluxo excluído aparece no editor aberto** — se um fluxo for excluído do nó enquanto o seu editor ou o seu esquema de processamento está aberto, o nó informa isso em uma linha própria, e salvar deixa de estar disponível com a mesma razão indicada ao lado do botão. Antes, todas as listas desse fluxo simplesmente se esvaziavam, o que parecia um fluxo sem entradas e saídas configuradas ([Configurar fluxo](../webui/streams.md#webui-stream-editor)).
- **Um salvamento recusado indica a sua causa** — em vez de uma única frase geral para todos os casos, o formulário informa o que exatamente impediu: um tempo de espera de resposta esgotado, uma proibição por papel ou a própria recusa do nó, com as palavras dele.
- **Rótulos e seleção de PID nas regras de filtragem** — cada número é rotulado com o seu tipo e o seu codec e, em um multiplex, também com o programa a que pertence; a linha de adição ganhou a lista dos PIDs que a fonte realmente transporta. A entrada manual permanece: o transporte pode levar um PID sobre o qual nada foi decodificado ([Editor de entrada e saída](../webui/streams.md#webui-stream-io)).
- **As telas DVB mostram o número de programa endereçável** — para um serviço dentro de uma portadora T2-MI, a lista de programas do adaptador e as suas estatísticas trazem o PNR composto, o mesmo pelo qual o programa é endereçado na seleção do demultiplexador, do BISS e do CAM. O número próprio dentro da portadora repete-se em cada portadora de um transponder com grupos espelhados e não aponta para nada ([Estatísticas do adaptador](../webui/monitor.md#webui-dvb-stats)).
- **Um slot BISS é sempre oferecido como lista** — os programas abertos entraram nela por último, marcados com `· clear ·`, de modo que em um multiplex sem um único programa codificado a lista já não fica vazia: a chave costuma ser informada com antecedência, e um feed de eventos fica aberto entre os eventos ([Desembaralhamento](../streamer/dvb.md#streamer-dvb-descrambling)).
- **Das estatísticas do fluxo ao transcodificador e à sua fonte** — se a entrada ativa de um fluxo foi criada por um transcodificador, o seu valor tornou-se um link para a tela de transcodificadores com a linha da instância correspondente expandida, e ao lado surgiu uma etiqueta com o nome do fluxo que essa instância decodifica. Ambos os links estão disponíveis em qualquer papel ([Estatísticas do fluxo](../webui/streams.md#webui-stream-stats)).
- **Limites das execuções no registro** — cada início do serviço é marcado no fluxo por uma linha própria com o momento do início e a compilação em que a execução subiu: a atual traz ao lado o seu tempo de atividade, as anteriores indicam quanto tempo a execução funcionou e quanto tempo o nó ficou parado até o início seguinte, e uma execução encerrada sem parada normal é assinalada à parte. O separador é colocado mesmo com o filtro por gravidade ativado ([Registros](../webui/monitor.md#webui-logs)).
- **Limite de tamanho da base de estatísticas** — a base de métricas é limitada não apenas pela janela de retenção, mas também pelo tamanho. O nó presta contas da última limpeza — quanto de histórico restou, qual é o tamanho da base e quanto durou a limpeza — e informa expressamente se o limite de tamanho se mostrou mais rígido do que a janela configurada ([Configurações do servidor](../webui/administration.md#webui-server-settings)).
- **Os valores ajustados ao limite durante a carga são anunciados de imediato** — se o nó, ao ler as configurações, puxou um valor até o limite admissível, ele informa isso na tela logo após a inicialização, e não apenas com uma linha no registro ([Comportamento na inicialização e em erros de configuração](../install/files.md#startup-config-errors)).
- **Uma licença de geração obsoleta não é aceita** — um nó com uma licença autêntica da geração anterior não inicia e levanta um alerta próprio. Não se trata de prazo vencido nem de falsificação: a geração 2 é aceita apenas como licença de teste temporária, por isso uma licença perpétua dessa geração é recusada de imediato, em vez de viver até a sua data ([Catálogo de códigos de alerta](../meshwork/alerts.md#meshwork-alert-codes)).
- **O preenchimento automático calcula o alvo pelo conteúdo** — no modo automático de bitrate o nó parte da taxa real do conteúdo, e não da sua própria saída, de modo que o alvo já não sobe sem retorno e volta a descer assim que o conteúdo cabe novamente na taxa configurada ([Controle de bitrate](../streamer/spts.md#streamer-spts-bitrate)).
- **A janela de compensação de deriva é proporcional ao buffer** — a janela suave é limitada a um quarto do tamanho alvo do buffer de jitter, mas nunca abaixo de 100 ms: uma entrada com o buffer padrão já não trabalha sem folga, a compensação recupera a sincronização mais cedo, e a reconstrução de emergência do buffer ao esvaziar finalmente é acionada ([Sincronização](../streamer/spts.md#streamer-spts-sync)).
- Outras melhorias e correções de erros.
