Streaming para milhões ao mesmo tempo: como isso é possível
Um problema de escala que parece simples mas não é
Você abre um aplicativo de vídeo e em segundos está assistindo a um conteúdo em alta qualidade sem travamentos. Do outro lado do mundo outra pessoa está fazendo exatamente a mesma coisa ao mesmo tempo. E mais um milhão de pessoas também. Como uma empresa consegue entregar vídeo simultaneamente para tanta gente sem que ninguém precise esperar pelo outro?
O arquivo de vídeo que chega em pedaços
O primeiro conceito importante é que quando você assiste a um vídeo em streaming, o arquivo completo não é baixado de uma vez antes de começar a reprodução. O vídeo é dividido em pequenos fragmentos de poucos segundos cada, e esses fragmentos são entregues sequencialmente enquanto você assiste. Quando você está no minuto três do vídeo, os fragmentos do minuto quatro e cinco já estão sendo baixados em segundo plano enquanto os do minuto dez ainda estão no servidor esperando sua vez.
Esse modelo permite que a reprodução comece em segundos sem precisar esperar o download completo, e também permite que a qualidade do vídeo seja ajustada dinamicamente conforme a velocidade da sua conexão muda ao longo do tempo.
Servidores espalhados pelo mundo
Uma empresa de streaming não serve todos os seus usuários a partir de um único local. Isso seria geograficamente ineficiente e criaria gargalos impossíveis de gerenciar. Em vez disso essas empresas usam redes de distribuição de conteúdo, conhecidas pela sigla CDN, que são conjuntos de servidores estrategicamente distribuídos em diferentes regiões do mundo.
Quando você solicita um vídeo, o sistema identifica qual servidor está geograficamente mais próximo de você e entrega o conteúdo a partir daí. Um usuário em São Paulo recebe o vídeo de um servidor diferente de um usuário em Lisboa, mesmo que os dois estejam assistindo ao mesmo conteúdo ao mesmo tempo. Essa proximidade geográfica reduz o tempo que os dados levam para percorrer a distância entre o servidor e o seu dispositivo, o que se traduz em menor latência e reprodução mais fluida.
Como a qualidade se adapta automaticamente
Você já reparou que às vezes a imagem do vídeo fica pixelada por alguns segundos e depois volta a ser nítida? Isso não é falha, é o sistema funcionando como foi projetado. Plataformas de streaming armazenam cada vídeo em múltiplas versões de qualidade, desde resoluções mais baixas que exigem pouca banda até versões em alta definição que exigem mais.
Um algoritmo monitora continuamente a velocidade da sua conexão e a quantidade de fragmentos já baixados aguardando reprodução. Quando detecta que a conexão está mais lenta, automaticamente seleciona fragmentos de qualidade inferior para garantir que a reprodução continue sem interrupções. Quando a conexão melhora, volta gradualmente para qualidades mais altas. Tudo isso acontece sem que você precise fazer nada.
O que acontece nos bastidores quando muita gente assiste ao mesmo tempo
Eventos ao vivo são o maior teste para infraestruturas de streaming. Uma final de campeonato, um show muito esperado ou o lançamento de uma série popular podem multiplicar o número de acessos simultâneos em questão de minutos de forma imprevisível.
Para lidar com isso plataformas modernas usam infraestrutura em nuvem que pode ser expandida dinamicamente conforme a demanda aumenta. Em vez de manter servidores físicos suficientes para o pico máximo de uso o tempo todo, o que seria extremamente caro, elas alugam capacidade computacional adicional de provedores de nuvem quando necessário e liberam essa capacidade quando a demanda diminui. É uma forma de escalar recursos de forma elástica sem desperdício.
Por que alguns conteúdos travam mais do que outros
Ao vivo e sob demanda são experiências tecnicamente muito diferentes. Vídeos sob demanda, aqueles que você escolhe assistir no seu próprio ritmo, podem ser pré-carregados nos servidores mais próximos dos usuários antes mesmo de serem muito assistidos, porque a plataforma consegue prever que serão populares.
Transmissões ao vivo não têm esse luxo. O conteúdo é gerado em tempo real e precisa ser processado, codificado e distribuído para os servidores ao redor do mundo quase instantaneamente. Qualquer gargalo nessa cadeia se manifesta como travamento ou atraso para o usuário final, o que explica por que transmissões ao vivo são mais suscetíveis a problemas do que vídeos sob demanda.
Para continuar entendendo
Se esse tema fez sentido, vale seguir com:
Tecnologia não precisa ser complicada. Quando você entende o básico, até aquele momento em que o vídeo pixela por dois segundos faz sentido e deixa de ser frustrante.