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