Предыстория: нам нужно предоставить обучающий курс с большим количеством видео в Интернете для ~ 15 пользователей. Это видео будет в формате MP4, которое доставляется через видео HTML5, поэтому загрузка будет прогрессивной. Насколько я понимаю, вы не можете транслировать в HTML5 Video.
Эти 15 пользователей будут в одной комнате и будут иметь доступ к Интернету.
Видео будет состоять из множества коротких (30 секунд) роликов, размером около 9 МБ каждый. Эти файлы будут доставлены из Amazon Cloudfront (CDN).
При прогрессивной загрузке каждый "клиент" загружается так быстро, как может?
Верна эта теория или нет?
Как я могу посоветовать своему клиенту, какое подключение к Интернету ему потребуется, чтобы гарантировать плавное воспроизведение?
Есть мысли / советы?
Это проще, чем вы думаете: 30-секундный клип размером 9 МБ - это правильно 300 Кбит / с, у вас их 15 - таким образом, вам нужно иметь возможность потоковой передачи 4,5 МБ / с, то есть примерно 45 Мбит / с. Одного канала со скоростью 100 Мбит / с от сервера до вашего класса вполне достаточно. Веб-сервер, если он не испытывает недостатка в памяти, легко сможет прочитать файлы один раз и кэшировать их, что снижает любые требования к произвольному чтению.
В наихудшем сценарии случайного чтения веб-сервера все 15 пользователей одновременно запускают разные некэшированные видео, то есть 15 x 9 МБ, 135 МБ. Учитывая, что это по своей сути последовательные файлы, любой приличный дисковый контроллер начнет потоковую передачу всех 15 видео менее чем за секунду или две с самого дешевого из отдельных дисков.
В основном запустите ссылку 100 Мбит / с и убедитесь, что на вашем веб-сервере достаточно памяти, и расслабьтесь :)
Лично я бы использовал кеширующий «сервер» (например, Squid) для класса, поэтому вам нужно загрузить его только один раз, если видео всегда одинаково для 15 пользователей.
см., например, этот вопрос о serverfault:
Настройка Squid для кеширования медиапотоков
Это может значительно снизить ваши потребности в пропускной способности, если вы заранее знаете, что можете кэшировать их даже в нерабочее время, чтобы вы могли использовать текущую доступную пропускную способность без необходимости в дополнительной дорогой линии.
Однако в зависимости от лицензии на видео и местоположения вашего клиента могут возникнуть некоторые юридические проблемы, с которыми вам придется столкнуться.
Краткий ответ: 2,4 Мбит (9 МБ * 8 бит / байт / 30 секунд) * 15 (клиенты) = 36 Мбит для постоянного воспроизведения. Вероятно, вы могли бы обойтись и с меньшим, если не все загрузятся сразу или если вас устраивает небольшое время загрузки. Они могли бы добиться гораздо большего, если бы имели локальный кеш (например, Squid), чтобы гарантировать, что они загружают эти файлы только один раз.
Длинный ответ: «это зависит от многих вещей» :)
Кроме того, клиенты уравняют использование, если все они находятся на одинаковых машинах и загружают одно и то же. Таким образом, у студентов D-P нет проблем, они все будут замедляться одинаково (при прочих равных условиях).