Planejamento e protocolos de transmissão de dados¶
O núcleo do Perfect Streamer é a entrega confiável de fluxos MPEG-TS entre nós através de uma rede pública com perda de pacotes e atrasos. Esta seção descreve o modelo de transmissão, os protocolos de transporte e como planejar um canal: escolher um protocolo e calcular a largura de banda, a latência e as portas. As configurações detalhadas de cada campo são tratadas na descrição contextual da interface web (Interface web), e o processamento do fluxo em um nó, na seção Streamer: detalhes de implementação.
Modelo de transmissão: Stream, Sender, Receiver, Peer¶
A unidade de trabalho é um fluxo (Stream), um único canal MPEG-TS. Para cada fluxo configura-se um servidor emissor (Sender) e um ou mais receptores (Receiver); a associação emissor-receptor é designada por Peer.
A configuração se resume a listas de entradas (input) e saídas (output) para cada fluxo:
no emissor, input são as fontes MPEG-TS, output é a transmissão para os receptores;
no receptor, input é a recepção do fluxo do emissor.
Várias entradas na lista dão redundância de fontes; várias saídas, a distribuição simultânea de um mesmo canal a muitos destinatários e por diferentes protocolos.
Para os protocolos em que o receptor inicia a conexão, o NAT do lado dele não é obstáculo: o receptor se conecta sozinho ao emissor, e não é necessário encaminhar portas de entrada no receptor.
Protocolos Peer de transmissão confiável¶
Para a transmissão entre o emissor e o receptor estão disponíveis quatro protocolos Peer. Eles se dividem em duas classes segundo o princípio de compensação de perdas:
ARQ (Automatic Repeat reQuest) — os pacotes perdidos são retransmitidos por solicitação do receptor. Requer um canal de retorno e um buffer no receptor; a profundidade de recuperação é configurável. A esta classe pertencem PS1, SRT e RIST.
FEC (Forward Error Correction) — ao fluxo são adicionados continuamente dados redundantes que permitem recuperar as perdas sem canal de retorno. A esta classe pertence o Pro-MPEG COP3/RTP+FEC (SMPTE 2022-1/2).
PS1 (Perfect Stream)¶
Um protocolo próprio, baseado em UDP. Funciona segundo o princípio ARQ com retransmissão seletiva. Distingue-se pelo baixo consumo de recursos e transporta fluxos de alta taxa de bits, incluindo um MPTS completo.
O receptor inicia a conexão, por isso o emissor exige autenticação: os receptores são registrados como Peer com login e senha ou são autorizados por IP. A latência é determinada pelo buffer do receptor (janela de eliminação de jitter e de retransmissão); o buffer do emissor deve ser maior que o dos receptores. Ao trocar a fonte ativa no emissor, os receptores não se reconectam: a interrupção é recuperada pela retransmissão normal.
O PS1 é um protocolo proprietário e funciona apenas entre nós Perfect Streamer. É mais adequado para uma configuração ponto-multiponto: um emissor e muitos receptores.
SRT¶
Um protocolo aberto baseado em UDP (UDT). É amplamente difundido e compensa bem a perda de pacotes. Suporta os modos listener e caller, o que proporciona compatibilidade com equipamentos SRT de terceiros e serviços em nuvem.
No modo listener no emissor, vários receptores se conectam a um mesmo fluxo; para a autorização, os receptores são registrados como Peer, e está disponível a autorização por IP. A parte iniciadora (caller) pode estar tanto no receptor quanto no emissor. A margem de largura de banda para a retransmissão é definida em porcentagem acima da taxa de bits do fluxo.
Em nós de recepção densos, com um grande número de entradas SRT em modo caller, é possível desativar a bufferização interna do receptor SRT (TSBPD): a sincronização passa a ser assumida pelo buffer de jitter do nó (Sincronização), o que reduz sensivelmente a carga de CPU.
RIST¶
Um protocolo aberto baseado em RTP/RTCP. Funciona segundo o princípio ARQ sem ACK, apenas por NACK. Utiliza unicast e multicast.
São implementados os perfis Simple e Main: Simple ocupa duas portas UDP consecutivas (a porta base deve ser par), Main multiplexa os dados em uma única porta. São suportados vários caminhos (peers) com balanceamento ponderado — para redundância e agregação. Em multicast pode haver muitos receptores, com autorização por IP.
Pro-MPEG FEC¶
Entrega de MPEG-TS sobre RTP com correção antecipada de erros (FEC), sem canal de retorno. No PSS está implementada uma matriz FEC bidimensional (linhas e colunas, SMPTE 2022-2).
O fluxo de pacotes RTP é agrupado em uma matriz de tamanho definido, e os pacotes FEC são formados pelas suas linhas e colunas. Quanto menor a matriz, melhor a recuperação, mas maior a sobrecarga constante. Os canais FEC ocupam duas portas adicionais (port+2 e port+4), o que deve ser considerado ao colocar vários fluxos em um mesmo host ou em um mesmo grupo multicast.
As vantagens são a baixa latência fixa e a compatibilidade com equipamentos de radiodifusão profissionais. As desvantagens são o tráfego adicional constante e a fraca recuperação em grandes perdas (acima de ~0,2 %), por isso o protocolo é destinado a canais gerenciados com baixas perdas e não à internet pública «pesada».
Escolha do protocolo de transmissão¶
Protocolo |
Princípio |
Canal de retorno |
Latência |
Compatibilidade |
|---|---|---|---|---|
PS1 |
ARQ sobre UDP |
necessário |
configurável |
apenas entre nós Perfect Streamer |
SRT |
ARQ sobre UDP (UDT) |
necessário |
configurável |
aberto; equipamentos SRT de terceiros e nuvem |
RIST |
ARQ (NACK) sobre RTP/RTCP |
necessário |
configurável |
aberto; equipamentos RIST de terceiros; unicast e multicast |
Pro-MPEG FEC |
FEC sobre RTP |
não necessário |
baixa, fixa |
aberto (SMPTE 2022-1/2); equipamentos de radiodifusão profissionais |
Critérios de escolha:
um canal entre nós Perfect Streamer, alta taxa de bits ou MPTS completo, distribuição ponto-multiponto — PS1;
compatibilidade com equipamentos de terceiros ou a nuvem, margem de retransmissão em porcentagem acima da taxa de bits — SRT;
um transporte aberto baseado em RTP, multicast, balanceamento por vários caminhos — RIST;
um canal gerenciado com baixas perdas, latência mínima sem canal de retorno, equipamentos de radiodifusão profissionais — Pro-MPEG FEC.
Planejamento da largura de banda, da latência e das portas¶
Protocolos ARQ (PS1, SRT, RIST). As perdas são compensadas por retransmissão, por isso é preciso prever:
um canal de retorno do receptor ao emissor;
uma margem de largura de banda acima da taxa de bits nominal — picos de perdas causam picos de tráfego de retransmissão;
um buffer no receptor para a latência do canal. Quanto maior o buffer, mais profunda a recuperação de perdas, mas maior a latência de ponta a ponta; como referência, vários valores de RTT. Fluxos de baixa taxa de bits exigem um buffer maior em tempo, para que caibam pacotes suficientes na janela de recuperação.
Protocolo FEC (Pro-MPEG). Os pacotes redundantes são transmitidos continuamente, independentemente das perdas reais, por isso a sobrecarga é fixa e depende do tamanho da matriz FEC. Não é necessário canal de retorno, a latência é baixa e fixa, mas a recuperação é limitada, por isso este transporte é indicado para canais com baixas perdas.
Portas. Cada ponto de escuta precisa de uma porta UDP única dentro do host ou do grupo. Além disso, leve em conta que o perfil RIST Simple ocupa duas portas consecutivas (a porta base par e a seguinte), e o Pro-MPEG ocupa a porta base mais duas portas FEC (port+2 e port+4). Em uma rede Meshwork, um catálogo comum de endereços e portas ocupados ajuda a evitar colisões (ver Meshwork).
Criptografia de fluxos¶
A criptografia AES é ativada por uma frase-senha comum, definida em ambos os lados da conexão; as frases devem coincidir. Uma frase vazia significa funcionamento sem criptografia. A criptografia não altera o bitrate do fluxo.
O suporte e o comprimento permitido da frase variam conforme o protocolo:
Protocolo |
Comprimento da frase-senha |
Particularidades |
|---|---|---|
PS1 |
10–64 bytes |
— |
SRT |
10–79 bytes |
Além disso, escolhe-se o comprimento da chave: 128, 192 ou 256 bits. Uma frase fora do comprimento permitido interrompe a entrada ou a saída com uma mensagem de erro explícita. |
RIST |
não é verificado; são usados os primeiros 127 bytes |
Somente no perfil Main. No perfil Simple a frase-senha não tem efeito. |
Pro-MPEG |
10–64 bytes |
Extensão não padronizada: quando ativada, a compatibilidade com software e equipamentos de terceiros não é garantida. |
O comprimento da frase é contado em bytes, não em caracteres: uma letra cirílica ocupa dois bytes.
Outras entradas e saídas¶
Além dos protocolos Peer, estão disponíveis transportes padrão para recepção e transmissão:
Protocolo |
Entrada |
Saída |
Observação |
|---|---|---|---|
UDP |
sim |
sim |
unicast/multicast, SSM, seleção de interface; até 7 pacotes TS por datagrama |
RTP |
sim |
sim |
restabelecimento da ordem dos pacotes desordenados |
TCP |
sim |
— |
modo cliente; recepção onde o UDP está bloqueado |
HLS / HTTP |
sim |
sim |
na recepção, a variante da lista de reprodução adaptativa é selecionada por um número configurável (a primeira, por padrão); entrada apenas para SPTS |
RTSP |
sim |
— |
câmeras IP e servidores RTSP; auto-remux para MPEG-TS; apenas para SPTS |
RTMP / RTMPS |
sim |
sim |
publicação em receptores RTMP de terceiros; H.264 e HEVC; apenas para SPTS |
file / device |
sim |
sim |
gravação em arquivo TS e saída MPEG-TS para um dispositivo (por exemplo, ASI); reprodução em loop a partir de um arquivo |
pipe (FIFO) |
sim |
sim |
ponte para um processo externo através de um canal nomeado |
std (aplicação externa) |
sim |
sim |
ponte para protocolos não padronizados através de uma aplicação de console |
A publicação e a recepção de RTMP são descritas em Publicação e recepção RTMP; RTSP, entrada HLS/HTTP, arquivos e dispositivos, canais nomeados e aplicações externas estão em Outras entradas e saídas. As configurações detalhadas de cada transporte estão na seção Interface web. A distribuição OTT (HLS, LL-HLS, DASH) é descrita separadamente em OTT e DVR.
Redundância de fontes e distribuição¶
Redundância. Para um fluxo é possível definir várias entradas; apenas uma fica ativa de cada vez. Em caso de falha da entrada ativa, o fluxo alterna automaticamente para a próxima da lista e, ao ser restabelecida, pode voltar à fonte prioritária. Isso permite planejar antecipadamente as fontes principal e de reserva de um canal; as configurações detalhadas da comutação de entradas são descritas em Fluxos SPTS.
Distribuição. Várias saídas em um mesmo fluxo distribuem o canal a muitos destinatários e por diferentes protocolos simultaneamente.
Requisitos do fluxo de entrada¶
Conformidade com ISO/IEC 13818-1, Single Program (SPTS) ou Multi Program Transport Stream (MPTS).
A composição das faixas depende do tipo de conteúdo selecionado do fluxo SPTS, ver Fluxos SPTS.
Fluxos embaralhados são suportados, ver Fluxos SPTS.
Para a sincronização, o fluxo deve conter marcas PCR válidas.
A filtragem, a modificação e os modos de taxa de bits do fluxo de entrada são descritos em Fluxos SPTS, e as particularidades da multiplexação em Fluxos MPTS.