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!

Foi útil?

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.).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top