How does live stream encoding work? | Video encoding

A codificação de live streaming divide um vídeo ao vivo em partes menores, compactando-os e distribuindo os dados do vídeo por meio de uma CDN. As atualizações desse processo estão tornando o live streaming mais rápido.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Saiba por que os arquivos de vídeo são codificados
  • Aprenda como funciona a codificação de live streaming
  • Descubra como as melhorias no processo de codificação de live streaming pode reduzir a latência

Copiar o link do artigo

O que é live streaming?

Streaming é um método de envio de dados pela internet no qual os usuários finais não precisam baixar a totalidade dos dados. O live streaming é um tipo de streaming no qual o streaming é enviado pela internet em tempo real, sem que seja gravado e armazenado anteriormente.

O streaming de video games, o streaming de redes sociais como o Periscope e o Facebook Live e as transmissões de esportes profissionais pela internet são exemplos de live streaming. Embora tanto um áudio quanto um vídeo possam ser transmitidos ao vivo, este artigo irá se concentrar no live streaming de vídeos.

O que é codificação de vídeo?

Codificação de vídeo é o processo de compactar os dados de um vídeo para que este possa ser enviado para outro local de forma eficiente. O dispositivo receptor de um streaming — digamos, um tablet no qual um usuário está assistindo ao seu programa de TV favorito — decodifica os dados codificados. A codificação de vídeo segue padrões conhecidos publicamente para que vários dispositivos possam interpretar o streaming codificado.

A codificação de vídeo é necessária principalmente por dois motivos:

  1. Arquivos de vídeo descompactados levam tempo demais para serem enviados pela internet para que o streaming seja prático.
  2. O vídeo precisa estar em um formato que qualquer dispositivo do usuário — smartphones, notebooks, PCs etc. — possa interpretar.

Em um live streaming de vídeo, um dispositivo capta as entradas audiovisuais, as codifica e as envia para o público, tudo isso ao mesmo tempo. A parte de codificação desse processo é essencial para permitir que vários dispositivos do usuário recebam e reproduzam o vídeo.

Como funciona a codificação de live streaming?

Um live streaming de uma origem que captura vídeos — como, por exemplo uma webcam — é enviado para um servidor, onde um protocolo de streaming como HLS ou MPEG-DASH irá dividir o feed de vídeo em segmentos menores, cada um deles com duração de poucos segundos.

The video content is then encoded using an encoding standard. The encoding standard in wide use today is called H.264, but standards like H.265, VP9, and AV1 are also in use. This encoding process compresses the video by removing redundant visual information. For example, in a stream of someone talking against the background of a blue sky, the blue sky does not need to be rendered again for every second of video, since it does not change a lot. Therefore, the blue sky can be stripped out from most frames of the video.

Os dados compactados e segmentados do vídeo são distribuídos por meio de uma rede de distribuição de conteúdo (CDN). Sem uma CDN, pouquíssimos espectadores conseguiriam carregar o live streaming, e a última seção deste artigo explica por quê.

A maior parte dos dispositivos móveis possui um codificador incorporado, tornando mais fácil para os usuários fazer uma transmissão ao vivo nas plataformas de redes sociais e nos aplicativos de mensagens. Marcas e empresas que desejam uma qualidade superior para seu streaming usam seus próprios softwares ou hardwares de codificação, ou as duas coisas.

Como as novas tecnologias estão tornando o live streaming mais rápido?

Com tantos live streamings, os espectadores ainda enfrentam 20 a 30 segundos de latência — em outras palavras, o conteúdo visualizado está 20 a 30 segundos defasado com relação ao tempo real. Isso ocorre, em parte, porque cada segmento do vídeo precisa ser completamente carregado antes de ser reproduzido. Cada segmento do vídeo pode levar vários segundos para ser carregado.

Uma solução para esse atraso é um processo chamado "codificação parcelada". Esse processo funciona por meio de "fragmentação”, isto é, dividindo os segmentos do vídeo em partes ainda menores. Em seguida, essas partes menores são codificadas e os dispositivos que recebem o streaming podem reproduzir essas partes menores antes de o segmento completo ser carregado.

Como as CDNs estão se aprimorando no que se refere à aceleração do live streaming?

As CDNs são essenciais para o live streaming, pois permitem distribuir o streaming para usuários em locais totalmente diferentes. Além disso, as CDNs dispõem de muito mais largura de banda para distribuir um streaming do que um único servidor de origem. Sem uma CDN, o live streaming pode facilmente ter que enfrentar problemas de largura de banda.

No entanto, a maior parte das CDNs ainda precisa carregar um segmento inteiro de vídeo antes de conseguir veicular o segmento para vários usuários ao mesmo tempo. Isso reintroduz o problema da latência que a codificação parcelada deveria resolver.

To speed up live streaming, Cloudflare offers a feature called concurrent streaming acceleration. The Cloudflare CDN can deliver a segment of video to multiple end users at once while it is still loading, eliminating the wait time while the entire segment loads. The Cloudflare global network spans 200 cities in more than 100 countries, enabling users around the world to tune into a high-quality, real-time live stream.