Streaming é um método de visualizar vídeo ou ouvir conteúdo de áudio sem realmente baixar os arquivos de mídia. A performance do streaming pode ser melhorada e o tempo de buffer reduzido, se o proprietário dos arquivos usar uma CDN.
Após ler este artigo, você será capaz de:
Conteúdo relacionado
O que é live streaming?
Codificação de live streaming
Live Streaming por HTTP
O que é MPEG-DASH?
Formatos de codificação de vídeo
Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.
Copiar o link do artigo
Os primeiros sites eram simples páginas de texto com talvez uma imagem ou duas. Hoje, no entanto, qualquer pessoa com uma conexão de internet rápida o suficiente pode assistir a filmes em alta definição ou fazer uma chamada de vídeo pela internet. Isso é possível por causa de uma tecnologia chamada streaming.
Streaming é a transmissão contínua de arquivos de áudio ou vídeo de um servidor para um cliente. Em termos mais simples, streaming é o que acontece quando os consumidores assistem TV ou ouvem podcasts em dispositivos conectados à internet. Com o streaming, o arquivo de mídia que está sendo reproduzido no dispositivo cliente é armazenado remotamente e transmitido alguns segundos por vez pela internet.
O streaming é em tempo real e é mais eficiente do que baixar arquivos de mídia. Se um arquivo de vídeo for baixado, uma cópia do arquivo inteiro será salva no disco rígido de um dispositivo e o vídeo não poderá ser reproduzido até que o download do arquivo inteiro seja concluído. Se for transmitido, o navegador reproduz o vídeo sem realmente copiá-lo e salvá-lo. O vídeo carrega aos poucos em vez de carregar todo o arquivo de uma vez e as informações que o navegador carrega não são salvas localmente.
Pense na diferença entre um lago e um riacho: ambos contêm água e um riacho pode conter tanta água quanto um lago; a diferença é que com um riacho, a água não está toda no mesmo lugar ao mesmo tempo. Um arquivo de vídeo baixado é mais parecido com um lago, pois ocupa muito espaço no disco rígido (e leva muito tempo para mover um lago). O streaming de vídeo é mais parecido com um fluxo ou um rio, pois os dados do vídeo fluem continuamente e rapidamente para o navegador do usuário.
Assim como outros dados enviados pela internet, os dados de áudio e vídeo são divididos em pacotes de dados. Cada pacote contém uma pequena parte do arquivo e um player de áudio ou vídeo no navegador do dispositivo cliente recebe o fluxo de pacotes de dados e os interpreta como vídeo ou áudio.
Alguns métodos de streaming usam UDP, e alguns usam TCP. O UDP e o TCP são protocolos de transporte, o que significa que são usados para mover pacotes de dados entre redes. Ambos são usados com o Protocolo da internet (IP). O TCP abre uma conexão dedicada antes de transmitir os dados e garante que todos os pacotes de dados cheguem em ordem. Ao contrário do TCP, o UDP não faz nenhuma dessas coisas. Como resultado, o TCP é mais confiável, mas a transmissão de dados via UDP não demora tanto quanto via TCP, embora alguns pacotes sejam perdidos ao longo do caminho.
Se o TCP é como um serviço de entrega de pacotes que exige que o destinatário assine o pacote, então o UDP é como um serviço de entrega que deixa os pacotes na varanda da frente sem bater na porta para obter uma assinatura. O serviço de entrega TCP perde menos pacotes, mas o serviço de entrega UDP é mais rápido, porque os pacotes podem ser deixados mesmo que não haja ninguém em casa para assinar por eles.
Para streaming, em alguns casos, a velocidade é muito mais importante do que a confiabilidade. Por exemplo, se alguém estiver em uma videoconferência, preferirá interagir com os outros participantes da conferência em tempo real do que sentar e esperar que todos os dados sejam entregues. Portanto, alguns pacotes de dados perdidos não são uma grande preocupação e o UDP deve ser usado.
Em outros casos, a confiabilidade é mais importante para o streaming. Por exemplo, HTTP live streaming (HLS) e MPEG-DASH são protocolos de streaming que usam TCP para transporte. Muitos serviços de vídeo sob demanda usam TCP.
Os players de streaming de mídia carregam alguns segundos do stream antes do tempo para que o vídeo ou o áudio possam continuar sendo reproduzidos se a conexão for interrompida brevemente. Isso é conhecido como buffering. O buffering garante que os vídeos possam ser reproduzidos de forma regular e contínua. No entanto, em conexões lentas ou se uma rede tiver muita latência, um vídeo pode levar muito tempo para ser armazenado em buffer.
O streaming está sujeito aos mesmos tipos de atrasos e degradações de desempenho que outros tipos de conteúdo da web. Como o conteúdo transmitido é armazenado em outro lugar, o local de hospedagem faz uma grande diferença, como é o caso de qualquer tipo de conteúdo acessado pela internet. Se um usuário em Nova York estiver tentando fazer streaming a partir de um servidor Netflix em Los Gatos, o conteúdo do vídeo terá que atravessar 3 mil milhas para chegar ao usuário, e o vídeo terá que passar muito tempo em buffer ou pode nem ser reproduzido de forma alguma. Por esse motivo, a Netflix e outros provedores de streaming fazem uso extensivo de redes de distribuição de conteúdo (CDN), que armazenam conteúdo em locais ao redor do mundo muito mais próximos dos usuários.
As CDNs têm um enorme impacto positivo no desempenho do streaming. O Cloudflare Stream utiliza a CDN para armazenar conteúdo em cache e exibir conteúdo de vídeo em todos os data centers da Cloudflare ao redor do mundo; o resultado é latência reduzida para tempos curtos de inicialização de vídeo e buffer reduzido