O Live Ingest é um serviço da Azion projetado para receber sinais de Live Streaming e distribuí-los através de Applications. Para garantir uma transmissão de alta qualidade, resiliência e disponibilidade, é fundamental seguir um conjunto de boas práticas que maximizam o potencial da plataforma.

Este guia apresenta as principais recomendações para configurar e operar o Live Ingest, incluindo estratégias de redundância, configuração de encoders, uso de chaveamento automatizado e implementação de players robustos.


Pré-requisitos

  • Uma conta ativa na Azion com o serviço Live Ingest habilitado.
  • Um encoder compatível com o protocolo RTMP.
  • Conhecimento básico sobre Applications e Cache Settings.
  • Familiaridade com o Rules Engine para Applications.

Configure redundância com múltiplos RTMP Endpoints

A alta disponibilidade é fundamental para transmissões ao vivo. O Live Ingest suporta a configuração de múltiplos endpoints RTMP, permitindo que você crie uma arquitetura redundante.

Use endpoints Primary e Backup

Configure dois RTMP Endpoints em regiões geográficas distintas:

  1. Primary endpoint: endpoint principal que receberá o fluxo de vídeo durante operação normal.
  2. Backup endpoint: endpoint secundário que assumirá a transmissão caso o primary falhe.

Essa configuração garante que, se houver degradação ou falha no endpoint primary, o player possa automaticamente redirecionar o fluxo para o endpoint backup, mantendo a transmissão ativa sem interrupção para os espectadores.

Escolha regiões geográficas distintas

Ao configurar os endpoints, selecione regiões diferentes para minimizar o risco de falhas simultâneas. Por exemplo:

  • Primary: região mais próxima da sua fonte de conteúdo para menor latência.
  • Backup: região alternativa com boa conectividade e infraestrutura equivalente à do primary.

A separação geográfica protege contra problemas localizados como falhas de energia, problemas de rede ou desastres naturais que possam afetar uma região específica.


Utilize encoders homologados

O Live Ingest requer encoders que suportem o protocolo RTMP com autenticação via usuário e senha. Utilizar encoders homologados pela Azion garante compatibilidade e desempenho otimizado.

Verifique a lista de encoders homologados

Antes de iniciar sua transmissão, verifique se seu encoder está na lista de equipamentos homologados pela Azion. Encoders homologados passaram por testes de compatibilidade e oferecem:

  • Suporte completo ao protocolo RTMP.
  • Integração com o mecanismo de chaveamento.
  • Configurações otimizadas para a infraestrutura da Azion.
  • Suporte técnico conjunto quando necessário.

Configure corretamente o encoder

Ao configurar seu encoder, siga estas recomendações:

  • URL de ingestão: use as URLs fornecidas pela Azion para os endpoints primary e backup.
  • Credenciais: configure usuário e senha fornecidos pela Azion para autenticação RTMP.
  • Codec de vídeo: utilize H.264 para ampla compatibilidade com players.
  • Codec de áudio: utilize AAC para garantir reprodução universal.
  • Keyframe interval: configure para 2 segundos (1 frame a cada 2 segundos) para HLS.
  • Bitrate: defina bitrates adequados à sua audiência e qualidade desejada.

Configure players com suporte a fallback

O player de vídeo é o ponto final da cadeia de distribuição e deve estar preparado para lidar com falhas e degradações. Players modernos como hls.js oferecem recursos avançados de fallback.

Implemente fallback de transmissão live

Configure seu player para:

  1. Detectar falhas de carregamento: monitore eventos de erro no carregamento de segmentos ou playlists.
  2. Tentar reconexão: implemente lógica de retry com backoff exponencial.
  3. Alternar entre fontes: se disponível, alterne entre múltiplas URLs de manifesto.
  4. Exibir mensagens claras: informe o usuário sobre problemas de conexão de forma amigável.

Use hls.js para maior robustez

O hls.js é uma biblioteca JavaScript que implementa um cliente HLS. Ele oferece:

  • Suporte a fallback de transmissão live.
  • Detecção e recuperação automática de erros.
  • Configurações avançadas de buffer e latência.
  • Compatibilidade com diversos navegadores.

Exemplo de configuração básica com hls.js:

const video = document.getElementById('video');
const hls = new Hls({
liveDurationInfinity: true,
liveBackBufferLength: 0,
maxBufferLength: 30,
maxMaxBufferLength: 60
});
hls.loadSource('https://your-domain.hls.live.azion.com/stream.m3u8');
hls.attachMedia(video);
hls.on(Hls.Events.ERROR, function(event, data) {
if (data.fatal) {
switch(data.type) {
case Hls.ErrorTypes.NETWORK_ERROR:
console.log('Network error, trying to recover...');
hls.startLoad();
break;
case Hls.ErrorTypes.MEDIA_ERROR:
console.log('Media error, trying to recover...');
hls.recoverMediaError();
break;
default:
console.log('Fatal error, cannot recover');
hls.destroy();
break;
}
}
});

Monitore suas transmissões com Real-Time Metrics

O monitoramento em tempo real é essencial para identificar problemas rapidamente e tomar ações corretivas antes que impactem os espectadores.

Acompanhe métricas de Live Ingest

O Real-Time Metrics oferece indicadores específicos para o Live Ingest:

  • Usuários conectados: número de espectadores ativos na transmissão.
  • Dados transferidos: volume de dados distribuídos.
  • Status da conexão: saúde da conexão entre encoder e endpoint.
  • Latência: tempo de atraso entre ingestão e entrega.

Use a GraphQL API para dados detalhados

A GraphQL API do Real-Time Metrics oferece o dataset connectedUsersMetrics, que fornece dados agregados em tempo real sobre usuários conectados às suas transmissões.

Consulte a documentação sobre como consultar dados de usuários conectados com GraphQL API para implementar dashboards de monitoramento personalizados.

Configure alertas proativos

Configure alertas para:

  • Queda no número de usuários conectados (possível falha na transmissão).
  • Aumento de latência acima de limites aceitáveis.
  • Falhas de conexão com endpoints de ingestão.
  • Degradação de qualidade do sinal.

Otimize as políticas de cache para HLS

O Live Ingest converte automaticamente o sinal RTMP para HLS para distribuição. Configurar corretamente as políticas de cache é fundamental para o desempenho da transmissão.

Configure cache para chunks de vídeo

Os chunks (segmentos de vídeo .ts) devem ter um TTL (Time To Live) curto para garantir que os espectadores recebam o conteúdo mais recente:

  • Browser Cache TTL: 0 segundos (não armazenar em cache no navegador).
  • CDN Cache TTL: 60 segundos (armazenar brevemente no edge para alta demanda).

Configure cache para playlists

As playlists (arquivos .m3u8) devem ter TTLs ainda mais curtos para refletir atualizações frequentes:

  • Browser Cache TTL: 0 segundos.
  • CDN Cache TTL: 5 segundos ou menos.

Use o Rules Engine para aplicar políticas

Crie regras no Rules Engine para aplicar automaticamente as políticas de cache corretas:

Regra para chunks (.ts):

  • Critério: if ${uri} matches ".*\.ts$"
  • Behavior: Set Cache Policy para política de chunks.

Regra para playlists (.m3u8):

  • Critério: if ${uri} matches "\.m3u8$"
  • Behavior: Set Cache Policy para política de playlists.

Consulte o guia Implementar cache HLS para instruções detalhadas.


Prepare-se para eventos de alta demanda

Transmissões com grande audiência exigem preparação adicional para garantir que a infraestrutura suporte o pico de acessos.

Teste sua configuração antes do evento

Realize testes de carga simulando o número esperado de espectadores:

  1. Configure sua aplicação e endpoints de ingestão.
  2. Inicie uma transmissão de teste.
  3. Simule acessos simultâneos usando ferramentas de teste de carga.
  4. Monitore as métricas em tempo real.
  5. Ajuste configurações conforme necessário.

Considere o Tiered Cache

O Tiered Cache cria uma camada intermediária de cache que reduz a carga nos servidores de origem e melhora a performance para grandes audiências. Para transmissões ao vivo com HLS, o Tiered Cache pode ser utilizado como componente de ingestão.

Tenha um plano de contingência

Prepare um plano documentado com:

  • Procedimentos de failover manual.
  • Contatos de suporte da Azion.
  • Comunicação com a audiência em caso de problemas.
  • Alternativas de transmissão (redes sociais, plataformas de backup).

Documentação relacionada