Стриминг - Video CDN [RU]

Стриминг - Video CDN [RU]

Video CDN поддерживает протоколы MPEG-DASH и HLS. При загрузке видеофайла в хранилище создается последовательный плейлист небольших сегментов видео на лету, что позволяет сделать ваш контент доступным в наилучшем качестве на различных устройствах, через большинство браузеров и файрволов, почти при любой скорости соединения.

См. также

Встроенная система параметризации URL

Концепция функционала, не требующего явной настройки

Параметр «media»

Параметр URL используется для получения манифестов потоковых протоколов

В протоколе HLS основная идея заключается в разбитии видео на небольшие фрагменты (сегменты) и их передаче по HTTP. Каждый сегмент представляет собой отдельный файл .ts (Transport Stream). Полное видео (или прямой эфир) кодируется и нарезается на короткие фрагменты, обычно длительностью 2–10 секунд. HLS использует плейлисты (манифесты) в формате .m3u8 — текстовые файлы, описывающие, какие сегменты загружать и в каком порядке.

Протокол HLS, простой случай

Динамическое изменение размера сегментов не поддерживается из-за технических ограничений.

В протоколе DASH контент передается сегментами в формате *.m4s. Манифест Media Presentation Description (*.mpd) определяет структуру потоков, доступные видео- и аудиопараметры, а также правила доступа к сегментам. Передача осуществляется через HTTP, что позволяет эффективно использовать существующую инфраструктуру доставки, включая кэширование и CDN.

Протокол MPEG-DASH, простой случай

Из-за особенностей архитектуры в некоторых случаях манифесты потокового видео (.m3u8 и *.mpd) могут раздаваться с edge nodes. В таких случаях redirector возвращает 302 Found вместо 200 OK.

Кэширование сегментов на редиректорах

Кто-то может отметить, что перенаправление занимает время. Справедливо. За каждое решение мы платим цену.

Чтобы эту цену снизить, мы внедрили дополнительное кэширование на редиректорах. На них можно кэшировать определённые важные данные , если они не слишком объемны.

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

Благодаря такому подходу редиректоры могут кэшировать манифест и первые два фрагмента контента. Обычно этого достаточно, чтобы браузер начал воспроизведение почти мгновенно. Пока видео воспроизводится, медиаплеер бесшовно переключается на edge ноды для получения оставшихся сегментов. Такой гибридный поток доставки минимизирует задержку и улучшает пользовательский опыт.

Пример работы с HLS:

Кэширование HLS на редиректорах

Для использования этой функции дополнительная настройка не требуется. Она работает автоматически в рамках стандартной архитектуры потоковой передачи CDN.

Перепаковка

В большинстве случаев файлы, с которыми вы работаете (например, MP4 или MKV), не соответствуют форматам, ожидаемым современными потоковыми протоколами. Потоковая доставка использует сегментированные контейнеры в форматах TS или M4S. Это означает, что перед началом потоковой передачи контент обычно необходимо перепаковать в контейнер, предназначенный для эффективной сегментной доставки.

На нашей платформе этот процесс происходит автоматически. Нет необходимости в ручной пред-обработке или дополнительных инструментах. Video CDN перепаковывает ваши файлы в реальном времени, предоставляя набор сегментов, готовых для потоковой передачи. Вам нужно только получить потоковой манифест, а система сгенерирует список ссылок для загрузки сегментов.

Упрощённая идея перепаковки

Перепаковка ≠ Транскодирование. Транскодирование включает перекодирование аудио или видео потоков (например, конвертация H.264 в H.265), тогда как перепаковка просто изменяет формат контейнера. Исходные потоки остаются неизменными, поэтому нет потери качества или изменений медиа. Только «обёртка» адаптируется для доставки.

Video CDN не поддерживает транскодирование видео! Это ресурсозависимый процесс со своими возможностями и дополнительной сложностью.

Внутренняя структура форматов файлов лучше объясняет перепаковку видео.

Анализ формата позволяет разобраться, где здесь необработанные медиа-данные, которые передаются как есть, а где метаданные, которые могут трансформироваться в процессе обработки, и где синтаксические элементы, специфичные для каждого типа файла.

MP4 (MPEG-4 Часть 14)

Формат MP4 основан на ISO Base Media File Format и организован как иерархия блоков (boxes/atoms). Каждый блок содержит заголовок с типом и размером и может включать вложенные блоки, описывающие метаданные, структуру дорожек и расположение медиа-данных. Эта структура позволяет плееру быстро определить количество дорожек, их параметры и найти соответствующие фрагменты в блоке mdat.

Упрощённая структура MP4 файла выглядит следующим образом:

Структура формата MP4

MKV (Matroska)

Matroska Video (.mkv) — открытый мультимедийный контейнер, построенный на EBML (Extensible Binary Meta Language). EBML — это бинарный аналог XML, где каждый элемент имеет идентификатор (ID), длину (Size) и содержимое (Data).

Перепаковка MKV файлов является экспериментальной функцией. Нет гарантий, что она сработает в 100% случаев.

Упрощённая структура MKV файла выглядит следующим образом:

Структура формата MKV

TS (Transport Stream)

Формат «TS» относится к MPEG Transport Stream (MPEG-2 TS), стандартному цифровому контейнеру для передачи и хранения аудио, видео и данных, часто используемому в вещательных системах, таких как DVB и IPTV. Он разбивает потоки на небольшие пакеты фиксированного размера с синхронизационными маркерами, что делает его устойчивым для передачи в реальном времени по ненадёжным каналам, а также используется на DVD и для потоковой передачи.

Упрощённая структура TS файла выглядит следующим образом:

Структура формата TS

M4S (MPEG-4 Streaming)

Файл M4S — это сегмент видео из потока MPEG-DASH (Dynamic Adaptive Streaming over HTTP), по сути, часть большого MP4 (MPEG-4 Part 14) файла, предназначенная для эффективной потоковой передачи через интернет. Эти небольшие сегменты позволяют медиаплеерам начать воспроизведение, пока весь файл еще загружается, вместо того чтобы ждать загрузки полного файла.

Структура формата TS