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 fornecem redundância de fontes, várias saídas fornecem 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, um receptor atrás de NAT conecta-se sozinho ao emissor — não é necessário o encaminhamento de portas de entrada do seu lado.

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 a pedido do receptor. Requer um canal de retorno e um búfer 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 Pro-MPEG / RTP+FEC.

PS1 (Perfect Stream)

Um protocolo de desenvolvimento 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 búfer do receptor (janela de eliminação de jitter e de retransmissão); o búfer 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 por retransmissão normal, sem reconexão visível.

PS1 é um protocolo proprietário e funciona apenas entre nós Perfect Streamer. É especialmente eficiente em 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 búfer 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, o que garante alta eficiência. 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. Suportam-se 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 / RTP+FEC (SMPTE 2022-1/2)

Entrega de MPEG-TS sobre RTP com correção antecipada de erros (FEC), sem canal de retorno. O protocolo é conhecido também como Pro-MPEG COP3. 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, ao longo de cujas linhas e colunas são formados os pacotes FEC. 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 / RTP+FEC

FEC sobre RTP

não necessário

baixa, fixa

aberto (SMPTE 2022-1/2); equipamentos de radiodifusão profissionais

Referências 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, configuração flexível da margem de retransmissão — 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 / RTP+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 búfer no receptor para a latência do canal. Quanto maior o búfer, 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 búfer maior em tempo, para que caibam pacotes suficientes na janela de recuperação.

Protocolo FEC (Pro-MPEG / RTP+FEC). 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 — este transporte é 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

Todos os protocolos Peer suportam criptografia AES usando uma frase-senha comum inserida em ambos os lados. Para SRT seleciona-se adicionalmente o comprimento da chave (128, 192 ou 256 bits). A criptografia não altera a taxa de bits do fluxo.

Para Pro-MPEG, a criptografia é uma extensão não padronizada, por isso, quando ativada, a compatibilidade com software e equipamentos de terceiros não é garantida.

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 para um dispositivo (incluindo SDI); 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 permitem distribuir um mesmo canal a muitos destinatários de uma só vez 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 (codificados) 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.