Задержка в прямых трансляциях потокового видео
Что такое задержка при трансляции потокового видео?
Предположим, вы смотрите футбольный матч через сервис передачи потокового видео по существующим каналам связи (OTT). Тем временем ваш сосед смотрит тот же матч на обычном телевизоре, громко празднует голы и возмущается назначением пенальти, которые вы увидите только через 30 секунд.
А может быть, вы с интересом ждете объявления победителя в прямой трансляции конкурса, и тут телезрители в социальных сетях раскрывают интригу на 15 секунд раньше.
Задержки при просмотре видео вызывают разочарование у зрителей, которым приходится видеть событие позже, чем оно происходит. Со временем разочарование зрителей становится проблемой для поставщиков контента.
Своевременность доставки видео очень важна для определенных типов контента, включая трансляции спортивных соревнований, игр, новостей и мероприятий, которые транслируются только по технологии OTT, таких как киберспортивные матчи и интерактивные шоу. Зрители хотят видеть события без задержки. В эпоху развлечений в режиме реального времени задержки видео не только портят зрителям удовольствие; но и подрывают доверие к поставщикам OTT‑контента.
Причины задержки видео на пути от съемки до отображения
Величина задержки видео определяется рядом факторов, действующих на пути изображения от объектива камеры до экрана зрительского монитора.
- Длительность кодирования видео
- Операции по загрузке и упаковке данных
- Распространение по сети и транспортные протоколы
- Сеть доставки контента (CDN)
- Длина сегмента
- Настройки проигрывателя
Измерение задержки видео
Существуют различные методы, но самый простой способ измерения полной задержки видео заключается в следующем.
- Запустите приложение нумератора с хлопушкой на планшете.
- Снимите его на камеру, подключенную к кодировщику видео.
- Опубликуйте видеопоток на сервере источника.
- Доставьте на проигрыватель через CDN.
- Поместите проигрыватель рядом с планшетом, на котором запущена хлопушка.
- Сфотографируйте оба экрана.
- Разность показаний времени даст величину задержки.
Сокращение задержки при прямой потоковой трансляции видео
Отставание видео, передаваемого по технологии OTT, от эфирного телевидения и социальных сетей – не единственная проблема для поставщиков контента. Вот несколько других факторов, которые необходимо учитывать при снижения задержки.
Платформа Flash и протокол RTMP: приложения на базе Flash, использующие потоковое вещание по протоколу RTMP, раньше с успехом обеспечивали низкие задержки, но теперь, когда технология Flash считается устаревшей, а разработчики браузеров сокращают поддержку или полностью блокируют компоненты Flash, сети доставки контента (CDN) стали сокращать поддержку протокола RTMP (который и раньше мало использовался для доставки). Поставщики контента вынуждены искать другие пути.
Масштабируемость, надежность и низкая задержка: одним из вариантов решения проблем масштабирования является переход на технологии потокового вещания, совместимые с HTML5. К ним относятся HTTP Live Streaming (HLS), Dynamic Adaptive Streaming over HTTP (DASH или MPEG‑DASH) и Common Media Application Format (CMAF).
Эти технологии потоковой передачи данных используют протокол HTTP, а следовательно, при доставке возможно кэширование. Таким образом, сети CDN могут более эффективно доставлять большие объемы данных.
Однако несмотря на решение проблем масштабируемости и надежности, к общей длительности доставки прибавляются десятки секунд, что мешает достижению низкой задержки.
Интерактивные возможности: некоторые поставщики контента предпочитают развивать сервисы индивидуального вещания с интерактивными возможностями. Задержка видеосигнала в таких случаях, как правило, недопустима.
Если кадр видео отображается на экране на 30 секунд позже момента его съемки камерой, интерактивные действия, требующие обратной связи в режиме реального времени, становятся невозможными.
При разработке синхронизированных приложений для второго экрана, совместного просмотра, обычных или азартных игр необходимо точно контролировать задержку потокового видео.
Оптимальная задержка для прямых потоковых трансляций видео
Задержки видео можно разделить на три класса в соответствии с их максимальной и минимальной величиной.
Уровень задержки видео
Высокий (секунды) | Низкий (секунды) | |
---|---|---|
Сниженная задержка | 18 | 6 |
Низкая задержка | 6 | 2 |
Сверхнизкая задержка | 2 | 0,2 |
Важно понимать, чем сниженная, низкая и сверхнизкая задержка видео отличаются от задержки при эфирном вещании, хотя объяснить это непросто.
Средним показателем для эфирного вещания является задержка в 6 секунд. Следовательно, оптимальное значение задержки при передаче видео по технологии OTT находится где‑то внизу диапазона сниженной задержки или вверху диапазона низкой задержки. Приближение задержки к 5 секундам увеличивает шансы не отстать от эфирного вещания и лент социальных сетей.
Кроме того, чем ниже в цепочке подготовки контента расположен кодировщик видео для OTT, тем больше нужно снижать целевое значение задержки.
Лучшие способы снижения задержки в приложениях прямой потоковой трансляции видео
Чтобы система трансляции потокового видео могла считаться решением с низкой задержкой, нужно принять следующие основные меры.
- Измерить задержку видео на каждом этапе процесса.
- Оптимизировать кодирование видео.
- Выбрать продолжительность сегмента в соответствии с требованиями.
- Построить соответствующую архитектуру.
- Оптимизировать (или заменить) видеопроигрыватели.
Выбор оптимального размера сегмента для упаковки видео
Продолжительность сегмента явным образом влияет на задержку воспроизведения видео практически в любом проигрывателе. Предположим, что при использовании сегментов длительностью в 1 секунду задержку удалось снизить до 5 секунд. Переход к сегментам длительностью в 2 секунды увеличит задержку до 7–10 секунд, если не оптимизировать настройки проигрывателя.
Главное – определить правильный размер исходя из требований. Если задержка видео в 7 секунд или меньше не критична, выбирайте сегменты длительностью в 2 секунды.
Если в проигрывателе используются сегменты длительностью в 2 секунды, увеличьте длину GOP с 1 до 2 секунд – это повысит качество кодирования при сохранении битрейта.
Если в качестве формата для загрузки используется HLS, можно уменьшить нагрузку на хранилище источника и упростить упаковку данных, используя при загрузке двухсекундные сегменты.
Факты и советы по решению проблем задержки видео
- Задержка видео при прямой потоковой трансляции не является непреодолимой проблемой. Ее можно свести к минимуму, приложив некоторые усилия.
- Стандартные технологии HLS и DASH обеспечивают масштабируемость и низкую задержку при передаче по протоколу HTTP.
- Современный стандарт задержки видео при прямой потоковой трансляции составляет менее 10 секунд.
- Стабильная задержка видео в 4–5 секунд возможна, если этого требуют задачи бизнеса.
- Экосистема поддержки фрагментированной доставки видео по технологии CMAF развивается и вскоре сможет стабильно обеспечивать задержку, не превышающую 4 секунды.
Демонстрация прямой потоковой трансляции видео с низкой задержкой
Из этого демонстрационного ролика AWS Elemental MediaStore вы узнаете, как добиться предсказуемой, стабильной потоковой передачи видео с низкой задержкой с помощью стандартных протоколов HLS или DASH. Кроме того, вы ознакомитесь с высокопроизводительными возможностями подготовки и хранения видео в облаке, интегрированными в AWS.