Conheça as características que fazem do protocolo HLS praticamente uma obrigatoriedade para streamings de vídeo.
Houve uma grande mudança no mundo do vídeo on-line na última década. A tecnologia de vídeo Flash, da Adobe, que era o principal método de entrega de vídeo pela Internet, gradativamente caiu em desuso, sendo substituída por vídeos exibidos usando protocolos de streaming como o HLS e reproduzidos em players de vídeo HTML5.
Para os usuários, essa foi uma grande mudança. HTML5 e HLS são especificações abertas, o que significa que podem ser modificadas e usadas por qualquer pessoa gratuitamente. Elas também são mais seguras, confiáveis e mais rápidas do que as tecnologias anteriores.
Para os produtores de conteúdo, o processo de transição foi uma faca de dois gumes. Obviamente, existem algumas grandes vantagens em usar essas novas tecnologias. No entanto, também houveram desvantagens, especialmente relacionadas à substituição de sistemas e tecnologias por novos padrões, dos quais alguns não funcionaram da mesma maneira em todas as plataformas. Enfim, as dores foram inevitáveis.
Este artigo, originalmente publicado pela DaCast, é destinado tanto para veteranos das transmissões quanto para recém-chegados à mídia de streaming, e se concentra no protocolo HLS. O objetivo desse post é mostrar sua relevância para todos os tipos de streamers, seja para a transmissão ao vivo de eventos ou de vídeos ao vivo em um website.
Abordaremos as definições básicas, discutiremos outros protocolos de streaming e responderemos à pergunta colocada no título deste ensaio: o que é o protocolo de streaming HLS e quando você deve usá-lo?
Vamos direto ao assunto.
O que é o protocolo HLS?
HLS significa HTTP Live Streaming. Essencialmente, o HLS é um protocolo de streaming de mídia usado para distribuir mídia visual e de áudio pela Internet.
O protocolo de streaming HLS funciona cortando o conteúdo de vídeo MP4 em pequenos pedaços de 10 segundos. Esses clipes curtos são entregues via HTTP, o que torna o HLS compatível com uma ampla gama de dispositivos e firewalls. A latência para transmissões ao vivo do HLS, compatível com a especificação, tende a estar no intervalo de 15 a 30 segundos.
Quando se trata de qualidade, o streaming HLS se destaca. No que tange o servidor, os criadores de conteúdo frequentemente têm a opção de codificar o mesmo streaming ao vivo em várias configurações de qualidade. Os players podem então solicitar dinamicamente a melhor opção que estiver disponível, dada a sua largura de banda, a qualquer momento. De pedaço para pedaço, a qualidade dos dados pode ser diferente.
Em um momento, você pode estar enviando um vídeo completo em alta definição. Momentos depois, um usuário móvel pode encontrar uma “zona morta”, onde sua qualidade de banda diminui. O player pode detectar esse declínio na largura de banda e começar a fornecer fragmentos de filmes de baixa qualidade nesse momento. Isso reduz o buffering (processo de carregamento de páginas, o qual pode ser lento) e outros problemas.
>>> Conheça o JW8, o player desenvolvido para acabar com o buffering lento.
Histórico do formato de streaming HLS
O HLS foi originalmente disponibilizado pela Apple em 2009 para coincidir com o lançamento do iPhone 3. Os modelos anteriores do iPhone foram afetados por problemas com streaming de mídia on-line, em parte porque esses dispositivos geralmente alternavam entre redes Wi-Fi e redes móveis.
Antes do lançamento do HLS, o padrão de streaming de mídia da Apple era o Quicktime Streaming Server. Era um serviço robusto, mas, como utilizava portas despadronizadas para transferência de dados, seu protocolo RTSP era frequentemente bloqueado por firewalls. Esse fato, combinado com as baixas velocidades médias da Internet, condenou o Quicktime Streaming Server à morte.
Essa experiência inicial na tecnologia de transmissão ao vivo nunca atingiu um público amplo. No entanto, as lições aprendidas com a criação e o lançamento desse serviço foram incorporadas ao HLS.
Visão técnica geral
Os streamings HLS são gerados dinamicamente e armazenados em um servidor HTTP. Os arquivos de vídeo, como mencionamos, são divididos em segmentos curtos com a extensão de arquivo .ts (que significa MPEG2 Transport Stream).
O servidor HTTP também cria um arquivo de lista de reprodução .M3U8 (também chamado de arquivo de manifesto), que faz o papel de um índice para os trechos de vídeo. O arquivo de lista de reprodução serve como um banco que aponta para um índice de arquivos adicionais para cada uma das opções de qualidade existentes. Mesmo quando você optar por transmitir usando uma única opção de qualidade, esse arquivo ainda assim estará lá.
O software do player de vídeo do usuário é responsável por detectar tanto a piora quanto a melhora das condições da rede. Se isso ocorrer, ele lê o principal índice de lista de reprodução, determina para qual qualidade de vídeo deve alternar e, em seguida, lê o índice do arquivo específico da respectiva qualidade para determinar qual parte do vídeo corresponde ao local em que o espectador está assistindo. Todo esse processo é imperceptível para o usuário.
Análise de protocolos de streaming de vídeo
Várias empresas desenvolveram uma variedade de soluções de streaming através do uso de protocolos de streaming de mídia. Geralmente, cada um deles representa uma inovação no campo. No entanto, assim como as guerras de formato HD-DVD vs. Blu-Ray, ou o velho confronto Betamax vs. VHS, existem alguns conflitos que surgem de tempos em tempos. O HLS é atualmente o rei da transmissão de protocolos de mídia, mas nem sempre foi assim – e nem permanecerá assim para sempre.
RTMP
O RTMP (Real-Time Messaging Protocol – protocolo de mensagens em tempo real), é um padrão originalmente desenvolvido em meados dos anos 2000 pela Macromedia para transmissão de áudio e vídeo, frequentemente chamado de Flash. Mais tarde, a Macromedia se fundiu com a Adobe, que agora desenvolve o RTMP como um padrão semi-aberto.
O RTMP foi o método padrão de streaming de vídeo na Internet durante a maior parte da última década. Apenas o recente crescimento do HLS começou a destronar esse protocolo. Mesmo hoje em dia, a maioria dos serviços de hospedagem de streaming de vídeo trabalha com o processamento de RTMP. Em outras palavras, você envia seu stream para sua plataforma de vídeo on-line no formato RTMP e elas geralmente entregam o conteúdo para seus espectadores usando o HLS.
No entanto, o uso do RTMP está começando a desaparecer. Mais e mais CDNs (Content Delivery Networks) estão depreciando o suporte a esse protocolo.
>>> Conheça as vantagens do uso de uma CDN.
HDS
O formato de streaming de última geração da Adobe é conhecido como HDS, que significa HTTP Dynamic Streaming. O HDS foi projetado para ser compatível com o plug-in de navegador de vídeo Flash da Adobe, mas sua adoção geral é relativamente pequena em comparação com o HLS.
Aqui na K2. usamos o HDS para fornecer alguns dos nossos conteúdos de vídeo sob demanda. Para dispositivos e navegadores que suportam vídeo em Flash, o HDS pode ser uma opção robusta e com menor latência. Como o HLS, este protocolo divide arquivos de mídia em pequenos trechos. O HDS fornece recursos avançados de criptografia e DRM (Digital Rights Management – Gerenciamento de Direitos Digitais) e usa um método avançado de key frame (quadro-chave) para garantir que os fragmentos se alinhem.
Microsoft Smooth Streaming
A versão da Microsoft de protocolo de transmissão ao vivo é denominada Microsoft Smooth Streaming (MSS). O Smooth Streaming também usa a abordagem de bitrate adaptável, oferecendo a melhor qualidade disponível a qualquer momento.
Essa abordagem foi introduzida em 2008, tornando o MSS um dos primeiros métodos adaptativos de taxas de bits. Foi usado para transmitir as Olimpíadas de Verão naquele ano. Sua plataforma mais usada é, na verdade, a XBox One. No entanto, o MSS é um dos protocolos de streaming menos populares da atualidade.
MPEG-DASH
A última entrada na guerra de formatos de protocolos de streaming é o MPEG-DASH. O DASH significa Dynamic Adaptive Streaming over HTTP.
O MPEG-DASH tem várias vantagens. Uma é que ele é o primeiro protocolo de streaming de padrão internacional baseado em HTTP. Isso provavelmente fará com que a sua adoção generalizada seja mais rápida. No momento, o MPEG-DASH ainda é um protocolo novo, e não é amplamente usado, exceto pelas principais transmissoras de TV. No entanto, espera-se que ele se torne o padrão para o streaming dentro de alguns anos.
Uma grande vantagem do MPEG-DASH é o fato de ele ser um “codec agnóstico”. Isso significa que os arquivos de vídeo ou de mídia enviados por meio deste protocolo podem usar uma variedade de formatos de codificação. Isso inclui padrões amplamente suportados, como o H.264, bem como formatos de vídeo de próxima geração, como HEVC / H.265 e VP10.
Vantagens do streaming HLS
Como mencionamos, o HLS tem uma grande vantagem quando se trata de qualidade. Os streams podem ser entregues usando o processo de bitrate adaptável. Isso significa que cada espectador recebe a melhor qualidade que sua conexão é capaz de fornecer, a qualquer momento.
O protocolo de streaming HLS também é amplamente suportado. O HLS foi originalmente limitado a dispositivos iOS como iPhones, iPads e iPod Touch. Atualmente, o HLS é suportado nativamente em todos os navegadores do Google Chrome, no Safari e no Microsoft Edge, e nas plataformas iOS, Android, Linux, Microsoft e MacOS.
Por enquanto, o HLS é o padrão definitivo para conteúdo de transmissão ao vivo.
Quando usar o protocolo HLS?
Recomendamos usar o HLS o tempo todo. É o protocolo mais atualizado e amplamente usado para streaming de mídia. No entanto, ele tem uma desvantagem. O HLS tem latência relativamente maior. Isso significa que os streams não são tão “ao vivo”, pois podem ser atrasados em 30 segundos ou mais.
No entanto, para a maioria das emissoras, isso não é um problema. Grande parte das transmissões ao vivo pode lidar com um atraso como esse, sem causar qualquer tipo de insatisfação nos usuários.
>>> Saiba mais sobre latência de vídeos.
Streaming para dispositivos móveis
Se você deseja transmitir para dispositivos móveis e tablets, o HLS é obrigatório. Uma vez que os dispositivos móveis representam agora a maior parte do tráfego da Internet (cerca de 75% do tráfego em 2017), o HLS é essencial.
Streaming com um player de vídeo HTML5
Vídeos nativos HTML5 não são compatíveis com RTMP ou HDS. Portanto, se você quiser usar um player de vídeo puramente HTML5, o HLS é a única opção. Além de alcançar dispositivos móveis, essas considerações apontam para o HLS como o padrão. Se você estiver preso ao uso da tecnologia Flash no momento, o RTMP será um método de entrega melhor – mas somente se você não tiver outra opção.
Construindo um workflow (fluxo de trabalho) RTMP -> HLS
Se você estiver usando um serviço como o K2.Live como sua plataforma de vídeo on-line, precisará criar um workflow que comece como RTMP. Isso é bem simples. Essencialmente, tudo o que você precisa fazer é configurar o seu codificador de hardware ou software para fornecer um stream RTMP aos servidores da K2.. A maioria dos codificadores usam o RTMP como padrão, e bem poucos suportam apenas esse padrão.
Nosso parceiro de CDN, a Akamai, irá receber o stream RTMP e retransmiti-lo automaticamente usando o HLS e o RTMP. Para os usuários, será adotado como padrão o melhor método suportado por seus dispositivos.
Usar o HLS é relativamente simples. No K2.Live, todos os streamings ao vivo são padronizados para a entrega em HLS. Em computadores que suportam Flash, recorremos ao RTMP / Flash para reduzir a latência. No entanto, o HLS é suportado automaticamente em todas as transmissões ao vivo do K2.Live e usado em quase todos os dispositivos.
O streaming HLS é fornecido por meio de um arquivo M3U8. Este arquivo é essencialmente uma lista de reprodução que contém referências ao local dos arquivos de mídia. Em uma máquina local, isso seria como caminhos do arquivo. Para transmissão ao vivo pela Internet, um arquivo M3U8 conterá uma URL, na qual o stream está sendo entregue.
Usando um player de vídeo HTML5
Se você usa a plataforma K2.Live, já está usando um player de vídeo HTML5 totalmente compatível. O conteúdo entregue via K2.Live adotará o padrão de entrega para HTML5, mas usará o Flash como método de backup, caso o HTML5 não for compatível com um determinado dispositivo ou navegador. Isso significa que até os dispositivos mais antigos não terão problemas para reproduzir seu conteúdo.
O futuro do streaming ao vivo
Embora o HLS seja o atual “padrão de ouro” para transmissões ao vivo, ele não permanecerá assim. é provável que o MPEG-DASH se torne cada vez mais popular nos próximos anos.
Esse padrão será adotado de forma generalizada, o que provavelmente ocorrerá junto com outras mudanças, como a transição da codificação h.264 para h.265 / HEVC. Este novo padrão de compactação fornece tamanhos de arquivo muito menores, tornando a transmissão ao vivo em 4K uma possibilidade real.
No entanto, esse tempo ainda não chegou. Por enquanto, é mais importante se manter próximo dos padrões estabelecidos para alcançar o maior número de usuários possível.
Conclusão
O objetivo deste artigo foi apresentar o protocolo HLS para streaming de mídia. Discutimos o que é o HLS, como funciona, quando usá-lo e apresentamos algumas alternativas de protocolos. Esperamos que isso tenha lhe dado uma base no entendimento da tecnologia de streaming HLS.
O HLS é amplamente suportado, de alta qualidade e robusto. Todos os profissionais do streaming devem estar familiarizados com o protocolo, mesmo que não compreendam os detalhes técnicos em sua plenitude. Isso vale para todos os tipos de streaming, inclusive se você quiser transmitir vídeos ao vivo em seu site por meio de plataformas de vídeo on-line como a K2.Live.