Прогрессивная загрузка видео в классной комнате - как определить необходимую пропускную способность

Предыстория: нам нужно провести интенсивный курс электронного обучения для аудитории ~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 для кэширования медиапотоков

Это может значительно снизить ваши потребности в полосе пропускания, если вы заранее знаете, что можете даже кэшировать их в нерабочее время, чтобы вы могли использовать текущую доступную полосу пропускания без необходимости в дополнительной дорогой линии.

В зависимости от лицензии видео и местоположения, в котором находится ваш клиент, могут возникнуть юридические проблемы, с которыми вам придется столкнуться.

Другие вопросы по тегам