Você já parou para pensar no tamanho da capacidade de armazenamento de vídeo do YouTube? O serviço de streaming é uma das maiores plataformas do mundo e seus números impressionam.
Diariamente são entregues mais de 4 bilhões de visualizações. Além disso, como mecanismo de busca, o YouTube é o segundo em popularidade no mundo, ficando à frente de serviços como Yahoo, Bing e Ask. Ainda assim, apesar de todo esse volume de dados trafegados, raramente os usuários reclamam de perda de qualidade ou lentidão.
Como é possível lidar com tantos vídeos como o YouTube faz?
São vários processos envolvidos na simples transmissão de um vídeo. Os conteúdos passam por processos de transcoding (mudança para formatos mais populares ou mais fáceis de serem manipulados), transrating (redução do bitrate de áudio e vídeo, mas com a manutenção do formato original) e trans-sizing (redução de tamanho do vídeo).
O YouTube utiliza hoje técnicas que permitem transcodificar um áudio e um vídeo de tamanho grande praticamente em tempo real, graças à sua imensa infraestrutura que permite conduzir esses processos de forma paralela. Um vídeo enviado à plataforma é dividido em diversos segmentos, processado, e posteriormente juntado.
Divisão em pequenas partes
A divisão em pequenas partes é outro “segredo” inteligente que permite ao YouTube executar os vídeos sem maiores problemas. Essas pequenas partes são utilizadas para formar o cache no browser dos vídeos a que assistimos. É mais fácil para o navegador puxar pedacinho por pedacinho – e aumentar o buffer do vídeo – do que puxar tudo de uma vez.
Sabe aquela barrinha cinza nos vídeos que vai aumentando à medida que o tempo passa e o conteúdo é carregado? Esse é o buffer sendo construído em tempo real, com pequenos pedaços do arquivo sendo disponibilizados no navegador para que o usuário possa assistir ao conteúdo sem travamentos.
Qualidade de transmissão adaptativa
Você já percebeu que quando inicia um vídeo, muitas vezes a qualidade está mais baixa do que o normal e vai se ajustando com o passar do tempo? Isso não acontece por acaso. O chamado “adaptative bitrate streaming” aumenta progressivamente a qualidade de transmissão de acordo com a velocidade de internet do usuário.
É como se o YouTube preferisse que você assistisse a um vídeo inteiro, sem travamentos, ainda que com uma qualidade inferior, do que disponibilizasse o conteúdo em qualidade máxima, mas travando a cada cinco segundos. A experiência de visualização se sobrepõe à qualidade.
Google Global Cache (GGC)
Para que seja possível processar demandas de usuários vindas de todas as partes do mundo, o Google busca disponibilizar edge nodes o mais próximo possível de todos. Quando um usuário brasileiro tenta acessar a um vídeo ele não faz uma requisição ao servidor norte-americano, mas a uma rede local mantida pelo Google em parceria com provedores.
Essas redes estão espalhadas por todo o mundo e visam proporcionar aos usuários uma experiência ainda mais rápida. Quanto maior a proximidade, mais rápido os conteúdos são acessados. O processo é similar ao de um CDN (Content Delivery Network).
O segredo é privilegiar o usuário
O segredo do sucesso do YouTube é a maneira como a sua construção é feita para privilegiar a execução, independentemente das condições da máquina ou do smartphone do usuário. Todos os processos aplicados visam tornar a execução mais fluída, reduzindo o consumo de memória e processamento no local.
Para isso, é claro, uma gigantesca infraestrutura é disponibilizada, com tecnologias proprietárias e servidores espalhados por todo o mundo. Reproduzir algo desse porte, a menos que você seja uma gigante da tecnologia, é praticamente impossível.