Como funciona o streaming
O número de argumentos não importa exceto se alguns deles estevirem corretos. -Ralph Hartley (1888-1970), Engenheiro eletrônico
Estava eu procurando na internet onde seriam transmitidas as finais dos estaduais esse final de semana, pois agora com a larga oferta de plataformas de streaming eu já não sei mais com exatidão quem tem os direitos de transmissão do futebol. Por um lado isso é ótimo, a democratização/"regulamentação" da mídia promove mais opções para o consumidor e menor controle da informação nas mãos de poucas empresas. Porém, para desorganizados como eu, ter que pesquisar toda vez na internet: "Onde assistir jogo X" é bem desinteressante, mas devo dizer que o streaming é uma maravilha do século XXI. A Sony investiu milhões de dólares no Blu-Ray e teve um grande prejuízo, porém, ninguém esperava muito por essa nova forma de viver. Por isso hoje gostaria de explicar como isso funciona por baixo dos panos.
Pra começar, após o login, a plataforma (Netflix, Prime, HBO+, etc...) verificará e oferecerá a melhor forma de se executar um filme/série, isso considerando o dispositivo a ser utilizado. Foram criados protocolos específicos para esse tipo de mídia, visando corrigir problemas de latência, sinal fraco, queda de rede, entre outros problemas físicos que muitas vezes podem atrapalhar a transmissão do conteúdo.Os protocolos clássicos da web para envio de arquivos não impactam tanto assim no caso das plataformas de streaming, pois existe uma técnica chamada ABR (Adaptative Bit rate), que garante a reprodução contínua mesmo com oscilações constantes na internet do usuário. Vale destacar que a qualidade do vídeo nem sempre depende só da sua internet, muitas vezes o frame rate (quantidade de quadros por segundo), a resolução do vídeo, entre outros detalhes podem impactar diretamente sua experiência. Essa adaptação da transmissão pode ser feita analisando a velocidade da sua internet, ou quanta banda você tem disponível para assistir o filme ou episódio do seriado (no caso dos brasileiros, a internet é vendida com base na velocidade, onde podemos usar o quanto de banda quisermos, diferentemente de outros países como EUA e Canadá). Algo que talvez você nunca tenha imaginado é a importância do player para a execução do serviço. Eu mesmo acreditava que implementar o player era a parte mais fácil e que a sua única importância era dar "play" e "pause", trocar o idioma ou legenda, e pronto. Saiba que essa caixinha que reproduz o vídeo também é responsável por decodificar o arquivo. Claro, existe uma norma para isso, e ela prevê que o vídeo tenha criptografia, mais de uma trilha de áudio, entre outros requisitos obrigatório (para o caso dos streamings).
Uma parte importante desse processo é a divisão de um arquivo enorme em outros milhares menores, esses segmentos têm entre 2 a 13 segundos. O player baixará todos esses segmentos assim que o usuário apertar play e deixá-los em memória caso o usuário perca a conexão. (Importante destacar que se o vídeo oferece múltiplas resoluções, os segmentos serão baixados para cada uma delas, ou seja, é muito mini-arquivo pra se baixar). Aí você pode estar se perguntando: Por que o streaming às vezes carrega bem mais rápido que um filme pirata ou um vídeo no youtube? A resposta é que se os arquivos forem do formato MP4 ou WebM, eles serão do tipo pseudo-streaming. Eles não suportam a "adaptação de qualidade" mencionada acima. Na teoria isso não deveria ser um problema, pois um MP4 não requer que o arquivo esteja totalmente baixado para ser reproduzido, porém, algumas características do arquivo impactam na experiência (além de questões de infraestrutura e caching de conteúdo).
Daremos um exemplo real para consolidar a leitura: digamos que você esteja na HBO+ querendo assistir um episódio de "Succession", bem no conforto de sua casa utilizando o wifi. Assim que você escolher o episódio, o player vai em tempo real analisar sua rede, seu dispositivo, escolher a melhor resolução, estimar quanta banda o episódio gastará, por fim, lhe dará a melhor qualidade possível. Após uns 30 minutos você decide que levará o cachorro para passear, mas quer continuar assistindo o episódio no celular. Você perceberá que o vídeo ficará um pouco borrado por alguns segundos e depois voltará a qualidade original, pois o player"percebeu" que a banda disponível para seu celular na rua é menor, logo existem duas opções, dar uma pequena pausa (que chamam de buffer, e baixar mais alguns segmentos do episódio) ou diminuir a qualidade para você continuar assistindo sem interrupções. Vale lembrar que antes de tudo isso, dependemos do CDN (content delivery network, basicamente uma forma de reter uma informação pedida anteriormente pelo usuário e deixá-la disponível para futuras ocasiões naquela região).
Pode parecer complexo (tecnicamente é), mas a ideia é muito mais simples do que você imagina. "Ah Kaleb, porque não existia streaming nos anos 2000 ou 90?" Simples, limitações tecnológicas. Hoje temos uma infra mais potente para compartilhamento de informações multimídia na web, além de melhores tecnologias dos provedores de internet (fibra óptica). Agora você pode curtir seu "The Office" tranquilo e entender porque às vezes a qualidade ta horrível e segundos depois, melhora magicamente.