Brasilamento do estilo do YouTube no flash
-
22-09-2019 - |
Pergunta
Eu posso estar completamente insano com este, mas parece que a taxa de download/buffer dos vídeos do YouTube é mais rápida no início e quanto mais o ponto de buffer obtém da marca de reprodução atualmente, o buffer mais lento vai.
Estou louco ou funciona dessa maneira para todos os outros?
Assumindo o último, alguma teorias sobre como elas fazem isso? É do lado do servidor ou do lado do cliente? Eu acho que teria que ser do lado do cliente, mas quem sabe? Não eu, é por isso que estou perguntando!
Solução
Pelo que vejo de um dump wireshark, eles bufferam conteúdo fazendo várias solicitações (com um parâmetro "intervalo") ao servidor. O cliente solicita apenas a próxima parte quando precisar.
GET /videoplayback?
sver=3&
key=yt1&
sparams=algorithm%2Cburst%2Ccp%2Cfactor%2Cid%2Cip%2Cipbits%2Citag%2Csource%2Cupn%2Cexpire&
algorithm=throttle-factor&
upn=L4m-ID0n0V0&
expire=1334882299&
factor=1.25&
ipbits=8&
ip=77.0.0.0&
fexp=912300%2C919303%2C911623&
source=youtube&
range=8908800-10690559&
cp=U0hSSVhTUF9OU0NOMl9QTVRDOjhGTXRjbEpBNzls&
burst=40&
signature=20F9219AACD9249B3517F56ECFE8B12C6B001D2F.BDDD25B61745E0F6E0BBAC7E792C121AA67A4C7C&
keepalive=yes&
itag=34&
cm2=0&
id=9cc8ae37c50b77f7 HTTP/1.1
Caso contrário, esse tipo de limitação de largura de banda só pode ser possível se o cliente 'tiver o controle' sobre o servidor, ou seja, solicita o que ele sabe que precisa (ex: download progressivo do YouTube) ou diga ao servidor regularmente onde ele está (ex: RTCP / Rtmp / rtp streaming).
Outras dicas
Isso é feito no lado do servidor, não há como fazê -lo no lado do cliente.
Existem muitas maneiras diferentes de servir vídeos, por isso dependerá da tecnologia do servidor que você está usando se quiser configurá -lo, ou você pode usar algo como RTMP (via Flash Media Server ou Red 5, etc.).