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 seja chamado tenha a palavra "ao vivo" (live) no nome, é usado para streamings ao vivo e on-demand. O HLS divide os arquivos de vídeo em arquivos HTTP menores para download e os entrega usando o protocolo HTTP . Os dispositivos clientes carregam esses arquivos HTTP e os reproduzem como vídeo.

Uma vantagem do HLS é que todos os dispositivos conectados à Internet suportam HTTP, facilitando a implementação do que protocolos de streaming que exigem o uso de servidores especializados. Outra vantagem é que um fluxo 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 está assistindo. Esse recurso é conhecido como "transmissão de vídeo com taxas de bits adaptáveis" ou "streaming com taxas de bits adaptáveis"; sem ela, redes com lentidão podem impedir a reprodução total do vídeo.

O HLS foi desenvolvido pela Apple para ser usado em produtos da marca, mas agora é usado em uma ampla variedade de dispositivos.

O que é streaming?

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

O que é HTTP?

O HTTP é um protocolo de camada de aplicação que serve para transferir informações entre dispositivos conectados a uma rede. Todo site e aplicativo acessível por usuários frequentes é executado em HTTP. A transferência de dados por HTTP geralmente se baseia em solicitações e respostas. Quase todas as mensagens HTTP são uma solicitação ou uma resposta a uma solicitação.

Com o streaming via HTTP, a estrutura solicitação-resposta padrão não pode ser aplicada. A conexão entre o cliente e o servidor permanece aberta durante a retransmissão, e o servidor envia os dados de vídeo ao cliente para que o cliente não precise solicitar cada segmento de dados de vídeo.

Como o HLS funciona?

Servidor: um stream HLS se origina de um servidor onde — no streaming on-demand — o arquivo de mídia está armazenado ou onde — na transmissão ao vivo — o stream é criado. Como o HLS é baseado em HTTP, qualquer servidor da Web comum pode originar o streaming.

Dois processos principais ocorrem no servidor:

  1. Codificação: os dados do vídeo são reformatados para que qualquer dispositivo possa reconhecer e interpretar os dados. O HLS deve 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 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 eles pertencem.
    • Ele também criará vários 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 os dispositivos clientes solicitam o fluxo. Normalmente, uma rede de entrega de conteúdo (CDN, na sigla em inglês) ajudará a distribuir o stream para áreas geograficamente diversas. Uma CDN também armazenará em cache o stream para entregá-lo aos clientes ainda mais rapidamente.

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

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

Uma das vantagens do HLS em relação a alguns outros protocolos de streaming é a taxa de bits adaptável, ou seja, a capacidade de ajustar a qualidade do vídeo no meio de um fluxo à 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 a máxima que a rede consegue comportar.

Se a rede diminuir, o reprodutor de vídeo do usuário detectará esse detalhe e o streaming de taxa de bits adaptável reduzirá a qualidade do stream, para que o vídeo não pare de ser reproduzido. Se houver mais largura de banda da rede disponível, o streaming de taxa de bits adaptável melhora a qualidade do fluxo.

O fluxo de taxa de bits adaptável é possível porque o HLS cria vários fluxos segmentados duplicados em diferentes níveis de qualidade durante o processo de segmentação. O reprodutor de vídeo do usuário pode alternar perfeitamente de um desses streams para outro 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 entrega de conteúdo pela Internet. O TCP tende a fornecer dados de maneira mais confiável que o UDP, mas o último é muito mais rápido, mesmo que alguns dados se percam pelo caminho.

Como o UDP é mais rápido, muitos protocolos de streaming preferem usá-lo em vez de usar o TCP. Por outro lado, o HLS usa o TCP. Isso se deve a vários motivos:

  1. O HLS acontece em HTTP e o protocolo HTTP é criado para uso com o TCP ( com algumas exceções).
  2. A Internet moderna é mais confiável e mais eficiente do que era quando o streaming foi desenvolvido pela primeira vez. Atualmente, em muitas partes do mundo, a conectividade do usuário melhorou bastante, especialmente para conexões móveis. Por isso, os usuários têm largura de banda suficiente para receber cada quadro de vídeo.
  3. O streaming de taxa de bits adaptável ajuda a compensar para uma entrega de dados possivelmente mais lenta pelo TCP.
  4. O streaming HLS não precisa acontecer "em tempo real", como é o caso das conexões de videoconferência. Alguns segundos extras de atraso não afetam a experiência do usuário tanto quanto os quadros de vídeo ausentes.

Quais outros protocolos são comumente usados para streaming?

Há uma série de protocolos semelhantes ao HLS, como MPEG-DASH e HDS, que também corre sobre HTTP e oferecer streaming de taxa de bits adaptável. O Adobe Flash, que usa o protocolo RTMP, costumava ser a principal tecnologia usada para transmissão de vídeo; no entanto, muitos navegadores não são mais compatíveis com o Flash. O RTMP ainda é muito utilizado.

O Cloudflare aceita HTTP live streaming?

O Cloudflare aceita o HLS para streaming ao vivo ou on-demand. O Cloudflare Stream integra armazenamento de vídeo, codificação e um reprodutor personalizável com a rede rápida, segura e confiável da Cloudflare, que abrange 200 cidades em mais de 95 países. Isso permite que usuários do mundo recebam streams HLS rápidos e de alta qualidade. Saiba mais sobre o Cloudflare Stream.