Я пытаюсь быстро изучить некоторые основные технологии, лежащие в основе прямой трансляции HDS и HLS.
Я настроил сервер Wowza Media 3.5 на экземпляре Amazon WebServices в EC2 и распространяю его через CloudFront. Я провел свое первое живое мероприятие и наблюдал, как нагрузка на мой сервер растет все выше и выше. Мне было интересно, может ли кто-нибудь помочь мне понять некоторые основы потокового вещания HDS/HLS (и nDVR...):
- Wowza — исходный сервер для моего облачного дистрибутива.
- Файл манифеста HDS настроен на кэширование в течение 2 секунд в CF (время TTL)
- Я проверил все IP-адреса, попадающие в мой экземпляр Wowza, на самом деле они оказались местами кэширования CF или пограничными серверами.
- (предположение) Поскольку весь трафик HDS проходит через порт 80, весь видеоконтент в конечном итоге кэшируется на периферии (хотя и на 2 секунды).
Вот где возникает мой вопрос: как данные обслуживаются для видеоконтента (вот мое понимание, пожалуйста, поправьте меня!): - Когда зритель запрашивает плейлист или файл основного фестиваля, он возвращает XML, который указывает проигрывателю на фрагмент видео /audio (m4fa и m4fv в экземпляре приложения DVR?), которые им нужно воспроизвести дальше. Поскольку эти данные также доставляются через порт 80, они также кэшируются.
Если приведенные выше утверждения верны, то имеет ли смысл следующее для оптимизации для HDS и HLS:
Случай 1: Сервис видеорегистратора: я установил правила кэширования в CloudFront следующим образом:
- все, что заканчивается на "f4m", "m3u8" и "?DVR" для кэширования на 2 секунды (файлы списка воспроизведения/манифеста)
- по умолчанию все остальное должно кэшироваться дольше (возможно, час или 24 часа...?). Таким образом, данные DVR остаются в кэше, но список воспроизведения продолжает обновляться каждые 2 секунды.
Случай 2: Нет службы DVR (это лучший способ оптимизации?)
- Я подозреваю, что мы могли бы также оптимизировать нагрузку на сервер, полностью отключив службу DVR, таким образом, все данные, распространяемые через CF, представляют собой только самые последние аудио/видео пакеты, поэтому все зрители должны запрашивать один и тот же список воспроизведения и файлы данных, и, следовательно, большое количество людей, запрашивающих эти файлы, не имеет большого значения, поскольку мой сервер обновляется только каждые 2 секунды из каждого пограничного местоположения для обновления файлов манифеста).
- Если фрагментам медиафайлов дается более длительное время кэширования, будет ли иметь значение, отключим ли мы службу DVR, если медиафайлы останутся в кэше?
Спасибо за любую информацию, которую вы можете предложить!