O que é o HTTP Live Streaming? | HLS Streaming

O HTTP live streaming (HLS) é um protocolo de streaming de vídeo amplamente usado que pode ser executado em praticamente qualquer servidor e é aceito pela maioria dos dispositivos. Ele permite que os dispositivos clientes se adaptem perfeitamente a mudanças nas condições da rede aumentando ou diminuindo a qualidade da transmissão.

Share facebook icon linkedin icon twitter icon email icon

Live Streaming por HTTP

Objetivos de aprendizado

Depois de ler este artigo você será capaz de:

  • Definir transmissão ao vivo por HTTP (HLS)
  • Saiba como a HLS funciona.
  • Explore os benefícios de streaming de taxa de bits adaptável

O que é HTTP live streaming (HLS)?

O HTTP live streaming (HLS) é um dos protocolos de transmissão de vídeo mais amplamente utilizados. Embora seu nome contenha a expressão "ao vivo" (live), é usado tanto para streaming ao vivo quanto sob demanda. O HLS divide os arquivos de vídeo em arquivos HTTP menores para download e os distribui usando o protocolo HTTP. Os dispositivos clientes carregam esses arquivos HTTP e os reproduzem em forma de vídeo.

Uma vantagem do HLS é que todos os dispositivos conectados à internet são compatíveis com HTTP, tornando sua implementação mais simples que a de protocolos de streaming que exigem o uso de servidores especializados. Outra vantagem é que um streaming HLS pode aumentar ou diminuir a qualidade do vídeo, dependendo das condições da rede, sem interromper a reprodução. É por isso que a qualidade do vídeo pode melhorar ou piorar no meio de um vídeo enquanto o usuário estiver assistindo. Esse recurso é conhecido como "transmissão de vídeo com taxa de bits adaptável" ou "streaming com taxa de bits adaptável", e na sua ausência as redes mais lentas podem interromper de vez a reprodução do vídeo.

O HLS foi desenvolvido pela Apple para ser usado nos produtos da empresa, mas atualmente vem sendo usado em uma ampla variedade de dispositivos.

O que é streaming?

Streaming é uma forma de distribuição de mídia audiovisual aos usuários pela internet e funciona enviando continuamente o arquivo de mídia para o dispositivo do usuário um pouco de cada vez, ao invés de enviar tudo de uma vez. O arquivo de mídia original é armazenado remotamente ou, no caso da transmissão ao vivo (live streaming), criado em tempo real com uma câmera ou microfone remoto. Dessa forma, o vídeo ou áudio podem ser reproduzidos sem que o dispositivo do usuário baixe o arquivo inteiro primeiro.

O que é HTTP?

O HTTP é um protocolo da camada de aplicação que serve para transferir informações entre dispositivos conectados a uma rede. Todos os sites e aplicações com acesso para usuários frequentes são executados em HTTP. A transferência de dados por HTTP geralmente se baseia em solicitações e respostas. Quase todas as mensagens em HTTP são uma solicitação ou uma resposta a uma solicitação.

Com o streaming por HTTP, a estrutura padrão solicitação-resposta não é utilizada. A conexão entre o cliente e o servidor permanece aberta durante a transmissão e o servidor envia os dados de vídeo ao cliente de forma que o cliente não precise solicitar cada segmento de dados de vídeo.

Como funciona o HLS?

Servidor: um streaming HLS se origina do servidor no qual (no caso de streaming sob demanda) o arquivo de mídia está armazenado ou no qual (no caso de transmissão ao vivo) o streaming está sendo criado. Como o HLS é baseado em HTTP, qualquer servidor web comum pode originar o streaming.

Dois processos principais ocorrem no servidor:

  1. Codificação: os dados do vídeo são reformatados de forma que qualquer dispositivo possa reconhecê-los e interpretá-los. O HLS precisa usar a codificação H.264 ou H.265.
  2. Segmentação: o vídeo é dividido em segmentos com alguns segundos de duração. O comprimento dos segmentos pode variar, embora o tamanho padrão seja de 10 segundos.
    • Além de dividir o vídeo em segmentos, o HLS cria um arquivo de índice dos segmentos de vídeo para gravar a ordem em que devem ser exibidos.
    • Também cria diversos conjuntos duplicados de segmentos com diferentes níveis de qualidade: 480p, 720p, 1080p e assim por diante.

Distribuição: os segmentos de vídeo codificados são enviados aos dispositivos clientes pela internet quando o streaming é solicitado. De modo geral, uma rede de distribuição de conteúdo (CDN) ajudará a distribuir o streaming para áreas geograficamente diferentes. Uma CDN também costuma armazenar o streaming em cache para entregá-lo aos clientes ainda mais rapidamente.

Dispositivo cliente: dispositivo cliente é o dispositivo que recebe o streaming e reproduz o vídeo, como, por exemplo, o smartphone ou laptop de um usuário. O dispositivo cliente usa o arquivo de índice como referência para montar o vídeo na ordem certa e alterna entre uma qualidade de imagem superior e inferior (e vice-versa) conforme necessário.

O que é streaming com taxa de bits adaptável no HLS?

Uma das vantagens do HLS em relação a alguns dos outros protocolos de streaming é a taxa de bits adaptável, ou seja, a capacidade de ajustar a qualidade do vídeo no meio de uma transmissão à medida que as condições da rede mudam. Essa capacidade permite que os vídeos continuem sendo reproduzidos mesmo se as condições da rede piorarem; por outro lado, também maximiza a qualidade do vídeo para que seja sempre a máxima que a rede consegue comportar.

Se a rede ficar mais lenta, o player de vídeo do usuário detecta isso e o streaming com taxa de bits adaptável reduz a qualidade da transmissão de modo que a reprodução do vídeo não seja interrompida. Se houver mais largura de banda de rede disponível, o streaming com taxa de bits adaptável aumenta a qualidade da transmissão.

O streaming com taxa de bits adaptável é possível porque o HLS cria vários segmentos de transmissão duplicados com diferentes níveis de qualidade durante o processo de segmentação, e o player de vídeo do usuário pode alternar facilmente entre esses segmentos durante a reprodução do vídeo.

O HLS usa TCP ou UDP como protocolo de transporte?

TCP e UDP são protocolos de transporte, ou seja, são responsáveis pela distribuição do conteúdo pela internet. O TCP tende a fornecer dados de maneira mais confiável que o UDP, mas este último é muito mais rápido, ainda que alguns dados se percam pelo caminho.

Como o UDP é mais rápido, muitos protocolos de streaming preferem usá-lo ao invés do TCP. O HLS, no entanto, opta pelo TCP por diversas razões:

  1. O HLS é transmitido por HTTP e o protocolo HTTP foi desenvolvido para ser usado com TCP (com algumas exceções).
  2. A internet moderna é mais confiável e mais eficiente do que era quando o streaming foi desenvolvido inicialmente. Em muitas partes do mundo a conectividade do usuário melhorou bastante, especialmente no caso de conexões móveis; como resultado, os usuários agora dispõem de largura de banda suficiente para permitir o recebimento de todos os fotogramas de um vídeo.
  3. O streaming com taxa de bits adaptável ajuda a compensar a possível lentidão de uma entrega de dados por TCP.
  4. O streaming HLS não precisa ser "em tempo real", como ocorre com as conexões de videoconferência. Alguns segundos a mais de atraso não afetam a experiência do usuário tanto quanto a ausência de fotogramas afetaria.

Quais outros protocolos costumam ser usados para o streaming de vídeos?

Existem diversos protocolos semelhantes ao HLS, como o MPEG-DASH e o HDS, que também são executados em HTTP e oferecem streaming com taxa de bits adaptável. O Adobe Flash, que roda no protocolo RTMP, costumava ser a principal tecnologia para transmissão de vídeos, mas, atualmente, muitos navegadores deixaram de ser compatíveis com o Flash. Por outro lado, o RTMP ainda é muito usado.

A Cloudflare é compatível com o HTTP live streaming?

A Cloudflare é compatível com o HLS, tanto para streaming ao vivo quanto sob demanda. O Cloudflare Stream integra o armazenamento de vídeo, a codificação e um player personalizável à rápida, segura e confiável rede da Cloudflare, que abrange 200 cidades em mais de 100 países. Isso permite que os usuários no mundo inteiro recebam transmissões rápidas e de alta qualidade por HLS. Saiba mais sobre o Cloudflare Stream.