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