Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ATENÇÃO: Esta documentação está deprecated, desde que adotamos SSL na entrega de vídeos. Estamos 
mantendo-a no ar somente por razões históricas. NÃO FUNCIONA. Está em nosso roadmap a criação
de um novo projeto focado em oferecer cache em provedores, stay tunned :-)

Project logo

#Introdução

A documentação a seguir descreve o que fazer para cachear vídeos ao vivo da Globo.com.

A entrega de vídeo ao vivo da Globo.com usa o protocolo HLS de acordo com a RFC-2616 do HTTP 1.1: seções 13 e 14. Portanto, basta que seu servidor de proxy seja compatível com o padrão para que o cache seja efetivo.

Cache é o mecanismo para armazenamento temporário de objetos, neste caso, pedaços de vídeos. Uma definição mais formal e completa sobre web-caching pode ser encontrada na wikipedia.

Web cache é um armazenamento temporário no disco rígido de páginas web, imagens e outros documentos utilizando técnicas de cache para reduzir o uso largura de banda disponível, aumentar a velocidade do acesso, entre outras vantagens.

#Motivações para uso

A correta utilização de um cache resulta em:

  • Economia de banda para ambos lados. [1]
  • Dimuição do atraso percebido. [1]
  • Melhoria da experiência do usuário, principalmente em momentos de pico.

#Funcionamento

Basicamente, quando um usuário atrás de um proxy configurado acessa um vídeo, ele realiza várias requisições http, possibilitando ao proxy armazenar respostas para requisições idênticas, evitando o tráfego de saída para um arquivo anteriormente requisitado.

Um possível fluxo para exemplificar o funcionamento (USR1 e USR2 são dois usuários distintos na rede, PROXY um servidor proxy):

1. USR1 solicita vídeo 23.ts ao PROXY
2. PROXY ainda não tem cache para objeto 23.ts
3. PROXY solicita vídeo 23.ts a GLOBO.COM
4. PROXY armazena resposta da globo e atende USR1
5. USR2 solicita pedaço de vídeo 23.ts ao PROXY
6. PROXY responde diretamente ao USR2

#Implementação

Para implementar um proxy você pode instalar o Squid. Instruções de instalação podem ser encontradas em seu site oficial.

Na instalação padrão, o Squid2 já faz caching baseado no cabeçalho das respostas, o que já atende aos vídeos ao vivo da Globo.com. Um exemplo de resposta pode ser visto abaixo:

< HTTP/1.0 200 OK
< Server: nginx
< Date: Fri, 15 Aug 2014 19:06:01 GMT
< Content-Type: video/mp2t
< Content-Length: 122200
< Expires: Fri, 15 Aug 2014 22:06:01 GMT
< Cache-Control: public, max-age=10800
< Via: 1.0 localhost (squid/3.1.19)
< Connection: keep-alive

Neste caso, o Squid vai seguir as regras do cabeçalho Cache-Control:public, max-age=10800 que informa que este recurso pode ser cacheado e por quanto tempo.

Uma observação importante é que nem todos os vídeos ao vivo da Globo.com são cacheáveis.

##Considerações

###O que deve ser cacheado?

As respostas do domínio *.glbvid.com e com extensão ts, mas sempre respeitando os cabeçalhos.

###O que não deve ser cacheado?

Os arquivos terminados com a extensão m3u8 e bin. Fazer caching desses arquivos pode degradar a experiência do usuário.

Caso de Uso: Squid

Requisitos

Execute os seguintes comandos:

$ git clone https://github.com/globocom/Globo-Live-Cache
$ cd Globo-Live-Cache
$ vagrant up

O comando vagrant up vai provisionar uma máquina virtual devidamente configurada com Squid3.

Nesta configuracão, todos os usuários tem acesso irrestrito.

Depois, configure seu browser para apontar para o proxy 192.168.33.10:3128. Caso queira verificar seu funcionamento:

$ vagrant ssh
vagrant@precise32: $ sudo tail -f /var/log/squid3/*log

Vale ressaltar que é possível exportar a máquina virtual do Vagrant para provedores cloud, como por exemplo: Amazon EC2 e Digital Ocean.

#Conclusão

Em testes realizados, percebemos que quando 10 usuários utilizam o proxy para acessar vídeos ao vivo da Globo.com, o ganho é de aproximadamente 90% de banda sobre vídeos. Aumentando o número de usuários para 1000, o ganho chega a 99,9%. Assim, se considerarmos um arquivo de vídeo no bitrate mais alto, o ganho pode ser em torno de 1Gb por pedaço de vídeo.

Os números acima são estimativas feitas a partir de testes com ab simulando usuários simultâneos com conexões para o maior bitrate.

Notas

About

Configuração de caching de vídeos ao vivo da Globo.com

Resources

Stars

9 stars

Watchers

86 watching

Forks

Releases

Packages

Contributors

Languages