Использование CDN для Live-трансляций помогает ускорить доставку контента и снизить задержки, если зритель находится далеко от сервера-источника. (В этом случае контент будет транслироваться с ближайшего кеш-сервера.)
Для онлайн-вещания через CDN мы используем протокол HLS (HTTP Live Streaming). Он работает так: потоки разбиваются на плей-листы (.m3u8) и чанки (видеофрагменты внутри плей-листов с расширением .ts), которые последовательно скачиваются по HTTP.
Этим Live-трансляции отличаются от другого статического контента, раздаваемого через CDN (картинок, скриптов, видеороликов).
Поэтому возникает задача обеспечить бесперебойность доставки: даже минимальные задержки и буферизации в кульминационный момент трансляции (например, в момент гола) могут существенно снизить удовлетворённость зрителя. Скорее всего, заметивший фризы пользователь пойдёт искать другой ресурс с тем же контентом, чем будет ждать возобновления трансляции.
Чтобы минимизировать задержки и исключить буферизации, мы оптимизировали CDN и упростили настройку Live-стримов для наших клиентов.
Стандартный механизм кеширования в CDN подразумевает, что контент для раздачи конечным пользователям хранится на жёстких дисках кеш-серверов.
В случае Live-трансляций это не оптимально, поскольку требуется время, чтобы отдать контент с дисков, а это дополнительные задержки.
Поэтому мы кешируем Live-стримы в оперативной памяти. Так они быстрее доставляются от сервера-источника конечным пользователям. Для этого на используемом для трансляции ресурсе достаточно включить пресет “Live Streaming” в панели управления CDN.
Пресет — это предзаданный набор настроек, который применяется к ресурсу и не может быть изменен. Пресет всегда привязывается к конкретному ресурсу.
Подробнее о кешировании файлов через оперативную память читайте в статье базы знаний «HLS (HTTP Live Streaming)».
Протокол HLS подразумевает, что для плей-листов и чанков следует указывать время их кеширования.
Плей-листы. Мы рекомендуем кешировать плей-листы на 1–2 секунды, чтобы при запросе зрителю не отдавался устаревший плей-лист с неактуальными чанками из кеша.
Чанки. Уверены, что чанки лучше кешировать на время, немного превышающее длину самого чанка. Наша рекомендация — 1 минута. Это время больше, чем время жизни плей-листа, потому что у зрителя может быть медленный интернет. И когда он смотрит конкретный фрагмент .ts, на источнике уже может отдаваться плей-лист с другими .ts. Такому зрителю важно отдать из кеша правильный чанк, потому что на источнике именно этого чанка уже может не быть.
В этом и помогают разработанные нами шаблоны.
Шаблон — это набор готовых настроек, которые можно мгновенно применить к CDN-ресурсу.
Вы можете использовать готовые системные шаблоны или создавать собственные для быстрой настройки правил для CDN-ресурсов.
Готовые шаблоны правил позволяют за пару кликов создать правило с рекомендуемыми настройками для плей-листов и чанков. При создании правила с помощью такого шаблона настройки можно изменять.
Это шаблоны правил для настройки потокового вещания через CDN:
Подробнее о шаблонах читайте в статье базы знаний «Шаблоны правил».
Доставляйте прямые трансляции с минимальными задержками и без буферизаций с помощью EdgeЦентр CDN.
Либо подключите стриминговую платформу и используйте полный набор функций для стриминга.