Skip to content

Live stream

media.live.streams

Um live stream no Sapsan é um stream com nome que reúne a captura de mídia, seu processamento e sua entrega aos consumidores. A mídia chega e é processada à medida que novos quadros ficam disponíveis. O stream tem uma configuração e um estado atual. Um único nome pode incluir:

  • Vídeo — várias qualidades.
  • Áudio — faixas em diferentes idiomas.
  • Legendas — faixas de texto.

Todas continuam sendo faixas do mesmo stream.

Em um servidor individual, o live stream gerencia o pipeline de mídia em execução. No central, o mesmo stream é representado como um objeto do cluster: suas funções podem ser executadas em vários servidores ao mesmo tempo.

Stream em um servidor

Uma instância local do stream é um gerenciador do pipeline. Ela conecta os componentes de processamento, fornece suas configurações e gerencia seu ciclo de vida. A composição do pipeline depende da configuração e do papel deste servidor no atendimento ao stream.

Componente Responsabilidade
Entrada Recebe mídia de uma fonte ou aceita uma publicação. Gerencia a conexão, as reconexões e a seleção da fonte reserva.
Transcodificador Decodifica e codifica a mídia conforme as configurações do stream, gerando os codecs e a escada de qualidades necessários.
Processamento Realiza o processamento configurado: extração de legendas, geração de miniaturas e processamento de metadados e eventos. Tarefas como reconhecimento de fala podem trabalhar com um arquivo já gravado.
Segmentador Monta segmentos e segmentos parciais, mantendo uma janela ao vivo para a entrega por segmentos.
Gravação DVR Envia os segmentos preparados ao subsistema de arquivo e monitora o estado da gravação.
Pushes Enviam mídia aos destinos configurados. Cada destino tem seu próprio estado de conexão e reconexão.
Retransmissores e assinantes Recebem quadros ou segmentos do stream para entregá-los a espectadores e outros servidores pelos protocolos correspondentes.

Os dados são distribuídos por várias ramificações: o mesmo resultado do processamento pode ser enviado simultaneamente ao arquivo, aos pushes e à entrega aos espectadores. Cada espectador adicional não exige captura e transcodificação independentes. A entrega por segmentos lê os segmentos preparados, enquanto os protocolos de transmissão contínua recebem um fluxo de quadros ou pacotes de transporte.

O gerenciador aceita alterações de configuração, atualiza os componentes e coleta seus estados. A reconexão da entrada, a recuperação de um push e o reinício do transcodificador fazem parte do ciclo de vida do pipeline local. Alterar parâmetros ou recuperar um componente pode interromper a parte correspondente do processamento.

Saiba mais sobre os componentes:

Stream do cluster no central

O central armazena a configuração geral do stream: qual fonte capturar e quais funções executar. O operador a altera pela API do central. O layouter determina quais streamers atenderão ao stream e com quais papéis. O central gera e entrega a cada servidor a configuração da sua parte do trabalho.

Assim, um único stream do cluster tem várias representações locais. O servidor de captura executa o pipeline de captura e processamento. No streamer DVR, o mesmo stream recebe mídia preparada para gravação. Em um edge, ele atende à entrega aos espectadores, usando um cache quando necessário. Cada servidor executa as funções atribuídas pela sua configuração.

Nível O que descreve
Stream do cluster A configuração geral e o nome do stream, que são mantidos quando seu posicionamento muda.
Atribuição Qual streamer desempenha um papel específico: captura, gravação do arquivo ou entrega.
Instância local O pipeline em execução no servidor com a configuração que lhe foi entregue.

A distribuição permite utilizar vários servidores ao mesmo tempo para diferentes funções de um único stream. Por exemplo, a captura e a transcodificação podem ser executadas em um servidor com hardware adequado, o arquivo pode ser gravado em armazenamento dedicado e a entrega pode ser atendida por edges próximos aos espectadores. Os papéis disponíveis e suas regras de atribuição são descritos no posicionamento de streams.

Exemplo de distribuição

O stream news tem a transcodificação e a gravação do arquivo ativadas. Ele utiliza os seguintes servidores:

  • Servidor A — captura: recebe a fonte e gera a escada de qualidades.
  • Servidor B — gravação: recebe a mídia preparada de A e grava o arquivo.
  • Servidores C e D — entrega: recebem a mídia ao vivo de A, leem o arquivo de B e atendem aos espectadores. Com o cache do arquivo ativado, solicitações repetidas podem ser atendidas localmente.

O operador gerencia um único stream, news. Diferentes partes do seu processamento e da sua entrega são executadas nos servidores. Adicionar um edge não exige criar outro stream gerenciado pelo operador com um nome diferente.

Alterações e falhas

Quando o posicionamento muda, o central entrega configurações atualizadas aos streamers afetados. O nome e a configuração geral do stream do cluster são mantidos; o conjunto de instâncias locais e as funções que elas executam podem mudar.

A recuperação local e a redistribuição no cluster resolvem tarefas diferentes. O próprio streamer reconecta sua entrada ou muda para uma fonte reserva configurada. O layouter decide transferir o trabalho para outro servidor com base no estado do cluster e nas regras de posicionamento.

Se a conexão com o central for perdida, um streamer que já está em execução continua usando a última configuração aplicada. A entrega de novas configurações e a redistribuição exigem um plano de controle operacional. Os estados dos componentes e servidores individuais devem ser considerados em conjunto: a entrega correta por um edge, por si só, não confirma que a gravação do arquivo continua no streamer DVR.