Download de vídeo progressivo em um ambiente de sala de aula - como determinar a largura de banda necessária

2

Antecedentes: Precisamos ministrar um curso pesado de e-learning em vídeo para uma sala de aula com aproximadamente 15 usuários. Este vídeo será MP4 entregue via vídeo HTML5 para download progressivo. A partir do que posso reunir, não é possível transmitir para vídeo em HTML5.

Estes 15 usuários estarão na mesma sala, compartilhando uma conexão com a Internet.

O vídeo será um monte de clipes curtos (30 segundos), com cerca de 9 MB cada. Esses arquivos serão entregues a partir do Amazon Cloudfront (CDN)

Com downloads progressivos, cada "cliente" é baixado o mais rápido possível?

Esta teoria é correta ou está errada?

  • o usuário A é o primeiro a baixar um clipe e inicia o download em velocidade quase total
  • usuário B e C, em seguida, chegar ao mesmo estágio, então eles começam a baixar mas não há muita largura de banda, então eles são baixados REALMENTE LENTAMENTE
  • usuários D-P estão parafusados!

Como posso informar ao meu cliente de que conexão de internet ele precisará para garantir uma reprodução suave?

Quaisquer pensamentos / conselhos?

    
por Keeno 20.03.2014 / 17:04

3 respostas

5

Isso é mais simples do que você pensa, um clipe de 30MB de 30MB tem 300KBps, você tem 15 deles - assim você precisa ser capaz de transmitir 4.5MBps, ou seja, aproximadamente 45Mbps. Um único link de 100 Mbps do servidor para a sua sala de aula deve ser bom. O servidor web, desde que não seja carente de memória, conseguirá facilmente ler os arquivos uma vez e armazená-los em cache, reduzindo assim quaisquer requisitos de leitura aleatória.

O pior cenário possível para a leitura aleatória do servidor da Web seria que todos os 15 usuários iniciassem diferentes vídeos não armazenados em cache de uma vez, portanto, 15 x 9 MB, 135 MB. Dado que estes são arquivos inerentemente sequenciais, qualquer controlador de disco decente iniciaria a transmissão de todos os 15 vídeos em menos de um ou dois segundos do mais barato dos discos únicos.

Basicamente execute um link de 100Mbps e garanta que seu servidor web tenha memória suficiente e relaxe:)

    
por 21.03.2014 / 09:08
2

Resposta curta: 2,4 Mbit (9 MB * 8 bits / byte / 30 segundos) * 15 (clientes) = 36 Mbit para reprodução suave sempre. Você provavelmente poderia fazer com menos do que isso, se nem todo mundo vai baixar de uma vez, ou se você está bem com um pouco de tempo de carregamento. Eles poderiam fazer muito melhor se tivessem um cache local (Squid, por exemplo) para garantir que eles só baixem esses arquivos uma vez.

A resposta longa é "depende de muitas coisas":)

Além disso, os clientes vão igualar o uso se estiverem todos em máquinas semelhantes e baixar a mesma coisa. Assim, os alunos D-P não estão em apuros, todos eles ficam mais lentos igualmente (todas as outras coisas no ambiente são iguais).

    
por 20.03.2014 / 18:25
2

Pessoalmente, eu usaria um "servidor" de cache (por exemplo, o Squid) para a sala de aula, então você só precisa fazer o download uma vez, se o vídeo for sempre o mesmo para 15 usuários.

veja por exemplo esta questão no serverfault:

Configurando o Squid para armazenar em cache os fluxos de mídia

Isso pode reduzir drasticamente as suas necessidades de largura de banda, se você souber de antemão que você pode armazená-los em horários off-times para que você possa usar a largura de banda disponível atual sem a necessidade de uma linha adicional.

Dependendo da Licença dos Vídeos e da localização do seu cliente, pode haver alguns problemas legais que você precisa enfrentar.

    
por 21.03.2014 / 11:15