Latência de vídeo em streaming ao vivo

O que é a latência no streaming de vídeo ao vivo?

Suponha que você esteja assistindo a um jogo de futebol usando um serviço de streaming OTT (over-the-top). Enquanto isso, seu vizinho está assistindo ao mesmo jogo na TV tradicional, comemorando os gols com estardalhaço e sofrendo com as penalidades máximas que você tem de esperar mais 30 segundos para ver.

Ou talvez você esteja assistindo a uma competição de talentos ao vivo, cada vez mais ansioso para conhecer o vencedor, quando seu feed de mídia social (normalmente, gerado por telespectadores) estraga a surpresa 15 segundos antes do vencedor ser revelado no seu vídeo.

Para os visualizadores, o grande problema com a latência de vídeo é a frustração de ver os acontecimentos depois que ocorrem. Com o tempo, as frustrações dos visualizadores com a latência de vídeo se transformam em problemas de latência de vídeo para os provedores de conteúdo.

Quando assistem a conteúdo de vídeo sensível ao fator de tempo (como esportes, jogos e notícias na TV; ou conteúdo OTT puro, como esportes eletrônicos e programas interativos), os visualizadores querem ver os eventos à medida que ocorrem. No mundo do entretenimento em tempo real, além de estragar surpresas, os problemas de latência de vídeo não resolvidos reduzem a confiança dos visualizadores em seus provedores de conteúdo OTT.

O que causa a latência do vídeo? Os fatores, da câmera à tela

Várias etapas da jornada da câmera à tela afetam a latência de vídeo:

  • Duração do pipeline de codificação de vídeo
  • Operações de consumo e embalagem
  • Protocolo de propagação e transporte da rede
  • Rede de entrega de conteúdo (CDN)
  • Comprimento do segmento
  • Políticas do aplicativo de reprodução
               –Armazenamento em buffer
               –Posicionamento do playhead
               –Resiliência
 
Com o streaming tradicional de taxa de bits adaptativa, a latência de vídeo depende principalmente do comprimento do segmento de mídia. Por exemplo, se os segmentos de mídia tiverem 6 segundos de duração, o aplicativo de reprodução já começa com 6 segundos de atraso em relação ao tempo absoluto real quando solicita o primeiro segmento.
 
Além disso, cada segmento de mídia adicional armazenado em buffer pelo aplicativo de reprodução antes do início real da reprodução aumentará o tempo necessário até o primeiro quadro de vídeo decodificado.
 
Embora muitos fatores gerem latência de vídeo (duração do pipeline de codificação de vídeo, duração das operações de consumo e embalagem, atrasos na propagação da rede e buffers da CDN, se houver), o próprio aplicativo de reprodução é responsável por boa parte da latência de vídeo geral.

Como medir a latência de vídeo

Embora existam outros métodos, a maneira mais fácil de medir a latência de vídeo de ponta a ponta é a seguinte:

  1. Use um tablet executando um aplicativo de claquete
  2. Filme-o com uma câmera conectada ao seu codificador de vídeo
  3. Publique o esse stream de vídeo na sua origem
  4. Entregue o stream ao aplicativo de reprodução usando uma CDN
  5. Coloque o aplicativo de reprodução ao lado do tablet com a claquete
  6. Tire uma foto das duas telas
  7. Subtraia os códigos de tempo para chegar ao resultado

Como minimizar a latência de vídeo para streaming ao vivo

A defasagem da latência de vídeo OTT em relação à TV aberta e à mídia social não é a única preocupação nas mentes dos provedores de conteúdo. Aqui estão algumas outras questões a considerar na obtenção de baixa latência:

Flash e Real-Time Messaging Protocol (RTMP): aplicativos baseados em Flash que usam streaming via RTMP costumavam funcionar bem com baixas latências. No entanto, com a obsolescência do Flash e a redução do suporte ao plug-in (ou o bloqueio desse plug-in) pela maioria dos navegadores da web, as redes de entrega de conteúdo (CDNs) também começaram a desativar o RTMP (que já tinha escala limitada no lado da entrega), forçando os provedores de conteúdo a procurar alternativas.

Escala e confiabilidade vs. baixa latência: uma escolha que resolve problemas de escala é a adoção de tecnologias de streaming compatíveis com HTML5, como HTTP Live Streaming (HLS), Dynamic Adaptive Streaming over HTTP (DASH ou MPEG-DASH) e Common Media Application Format (CMAF).

Essas tecnologias de streaming entregam via HTTP, o que significa que a entrega pode ser armazenada em cache e as CDNs podem entregar maiores volumes com mais eficiência.

No entanto, para obter escala e a confiabilidade, dezenas de segundos são adicionados aos tempos de entrega de ponta a ponta, prejudicando a baixa latência.

Recursos interativos: outros provedores de conteúdo podem optar por desenvolver serviços de transmissão pessoal com recursos interativos. No entanto, um atraso no sinal de vídeo geralmente não é aceitável para esses casos de uso.

O motivo é que, se o vídeo tiver um atraso de até 30 segundos desde o momento da primeira captura por uma câmera até o momento em que é assistido, a interatividade, que exige feedback em tempo real, torna-se impossível.

Além disso, aqueles que desejam desenvolver aplicativos sincronizados de segunda tela, visualização social, jogos ou jogos de azar precisam controlar a latência do streaming de vídeo em um nível bem detalhado.

Qual é a latência ideal de vídeo para streaming ao vivo?

A latência de vídeo pode ser classificada em três categorias distintas, cada uma definida por limites superiores e inferiores.

Níveis de latência de vídeo

  Alta (segundos) Baixa (segundos)
Latência reduzida 18 6
Baixa latência 6 2
Latência ultra-baixa 2 0,2

No entanto, vale a pena conhecer as diferenças entre a latência de vídeo reduzida, baixa e ultra-baixa e a latência de vídeo da transmissão, embora a explicação seja um pouco complicada.

Geralmente, a latência de vídeo média da transmissão é de 6 segundos, o que significa que a latência de vídeo ideal para OTT está perto do limite inferior da categoria de latência de vídeo reduzida ou do limite superior da categoria de baixa latência. Um valor próximo a 5 segundos maximiza as chances de concorrer com transmissões e feeds de redes sociais.

Além disso, dependendo da localização do codificador de vídeo OTT no fluxo de trabalho de preparação de conteúdo, a meta de redução de latência aumenta conforme os codificadores são posicionados em etapas subsequentes da cadeia.

Melhores práticas para obter vídeo de baixa latência em aplicativos de streaming ao vivo

Resumidamente, estas são as principais ações a serem realizadas para colocar sua solução de streaming de vídeo na categoria de baixa latência:

  • Meça a latência de vídeo em cada etapa do fluxo de trabalho
  • Otimize o pipeline de codificação de vídeo
  • Selecione a duração de segmento correta para as necessidades do usuário
  • Crie a arquitetura apropriada
  • Otimize (ou substitua) os aplicativos de reprodução de vídeo

Como escolher o tamanho de segmento correto para empacotar o vídeo

A duração do segmento escolhida tem um efeito mecânico sobre latência do vídeo em praticamente todos os aplicativos de reprodução. Por exemplo, você pode obter uma latência de 5 segundos com segmentos de duração de 1 segundo. Se você escolher segmentos de duração de 2 segundos, o resultado ficará entre 7 e 10 segundos de latência de vídeo, a menos que você otimize as configurações do aplicativo de reprodução.

A regra fundamental é “dimensionar corretamente” de acordo com os requisitos. Portanto, se uma latência de vídeo de 7 segundos ou menos não for crítica, escolha segmentos de 2 segundos.

Se o aplicativo de reprodução usa segmentos de 2 segundos, aumente o comprimento do GOP de 1 para 2 segundos para obter uma melhor qualidade de codificação a uma taxa de bits constante.

Além disso, se você usar HLS como o formato de consumo, poderá reduzir a sobrecarga do armazenamento de origem e do cálculo do empacotamento usando segmentos de 2 segundos para o consumo.

Lembre-se destes fatos e dicas da latência de vídeo

  • A latência de vídeo para streaming ao vivo não é um problema insuperável. Você pode reduzi-lo com algumas iniciativas
  • As tecnologias HLS e DASH padrão proporcionam baixa latência escalável via HTTP
  • O padrão de latência de vídeo atual para streaming ao vivo é menos de 10 segundos
  • Se os negócios exigirem, você já pode contar hoje com uma latência de vídeo estável de 4 a 5 segundos
  • O ecossistema de CMAF em blocos está amadurecendo e logo permitirá uma latência de vídeo estável inferior a 4 segundos

Demonstração de streaming de vídeo ao vivo de baixa latência

Saiba como obter streaming de vídeo previsível e estável de baixa latência usando protocolos HLS ou DASH padrão e conheça os recursos de alta performance para originação e armazenamento de vídeo em nuvem integrados com a AWS nesta demonstração do AWS Elemental MediaStore.

Low-Latency Live Video Streaming Demo [3min13s]

Comece a usar

Podemos ajudá-lo a começar a usar a nuvem com consultoria da nossa organização de vendas e arquitetura, ou você pode iniciar seu próprio projeto piloto ainda hoje.