Мы используем cookie, чтобы сайт был лучше для вас.
Внимание
У Вас отключена поддержка Cookie в браузере. Возможно некорректное отображение сайта!

Мы получили патент на разработку системы устойчивого транскодирования

Мы получили патент на изобретение в области стриминга.

Наши специалисты разработали систему отказоустойчивого транскодирования и выдачи прямых потоков в формате HLS. Новая технология улучшает стабильность транскодинга и позволит доставлять видео для 1 000 000 и более зрителей с большей гарантией.

Рассказываем, как разработка поможет нашим клиентам улучшить качество стриминга.

Что представляет собой новая система

Система отказоустойчивого транскодирования и выдачи потоков — это кластер серверов транскодирования под управлением балансировщика нагрузки. Кластер получает исходный видеопоток на входе, а на выходе отдаёт транскодированные адаптивные файлы, доступные по HTTP, то есть в HLS или, как альтернативный вариант, в MPEG-DASH.

Основные элементы системы:

  • Три или больше равноценных серверов транскодирования
  • Балансировщик для управления и распределения нагрузки между серверами
  • CDN для доставки файлов пользователям

Ключевая особенность такой системы транскодирования — отсутствие централизованного хранилища адаптивных файлов. Мы распределяем элементы в процессе стриминга и за счёт этого:

  • гарантируем бесперебойную доставку видео до конечных зрителей;
  • улучшаем стабильность вещания потоков Live;
  • снижаем нагрузку на внутреннюю сеть;
  • ускоряем доставку;
  • упрощаем связи между элементами;
  • исключаем дополнительную точку отказа.

Отсутствие централизованного хранилища может создать дополнительные трудности (такие, как проблема согласованности данных при изменении сервера транскодирования). Но наши разработчики предусмотрели все нюансы и решили все проблемы.

Как работает отказоустойчивое транскодирование и доставка потоков

1. Приём потока для транскодирования

Сначала балансировщик формирует параметры, на их основе выбирает самый подходящий сервер из кластера и отправляет ему команду через сервер обмена сообщениями на основе Redis.

Сервер получает команду и исходный поток в формате RTMP (или любом другом, который подходит для передачи видео).

2. Транскодирование

Сервер транскодирует видео в HLS. Поток представляется в виде файлов двух типов:

  1. Чанки — маленькие кусочки видео длиной 2–5 с.
  2. Чанклисты — плей-листы, постоянно обновляемые списки имён генерируемых чанков. Плеер регулярно запрашивает их по неизменяемому, заранее известному URL, чтобы всегда иметь актуальный список чанков для воспроизведения.

Каждый чанк имеет своё уникальное имя, привязанное к времени транскодирования. Это нужно на случай, если сессия транскодирования будет перезапускаться на разных серверах (например, при перераспределении нагрузки или в случае сбоя сервера). Уникальные имена исключают вероятность пересечения разных файлов и решают проблему согласованности данных.

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

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

Так как у всех серверов есть актуальный чанк-лист, при смене сервера транскодирования уже готовые чанки не будут кодироваться заново. Все перекодированные кусочки останутся в чанк-листе и будут скачиваться с предыдущего сервера.

3. Доставка потока через CDN

После транскодирования поток передаётся в сеть доставки контента и отправляется пользователям.

Для CDN в качестве источника контента указываются все серверы кластера транскодирования.

  1. Сеть запрашивает чанк-лист у первого попавшегося сервера в кластере (так как списки чанков на всех серверах одинаковые).
  2. При запросе нужного чанка CDN обращается ко всем серверам и находит фрагмент по уникальному имени.
  3. Кусочки видео в правильном порядке доставляются пользователям.

Схема доставки потока через CDN при отказоустойчивом транскодировании
Схема доставки потока через CDN при отказоустойчивом транскодировании

4. Обеспечение отказоустойчивости

Как мы сказали, при смене сервера транскодирования чанки не перекодируются заново. Загрузка нужных фрагментов идёт с предыдущего сервера. Но что, если этот предыдущий сервер вышел из строя и все транскодированные фрагменты остались недоступны? Тогда зритель не сможет перемотать видео назад.

Эту проблему мы решаем двумя способами.

Способ №1. Кеширование готовых чанков на промежуточном сервере между CDN и системой транскодирования. В EdgeЦентр CDN роль такого сервера играет шилдинг источника. Все фрагменты будут принудительно сохраняться в кеше шилдинга и останутся доступны, если случится сбой.

Способ №2. Создание пары серверов в рамках кластера, которые будут обмениваться готовыми чанками. Это немного увеличит нагрузку на них. Но если это будет всего два сервера, нагрузка не вырастет сильно, а мы обеспечим отказоустойчивость.

Наши клиенты сами могут решить, какой способ выбрать. Единственный нюанс: шилдинг источника — это дополнительная платная опция. Но если вы организовываете трансляции на большую аудиторию, расходы будут полностью оправданны, ведь шилдинг ещё и защищает систему от экстремальных нагрузок.

Какие преимущества даёт запатентованная технология

  • Подходит для стриминга с низкими задержками. Система может обновлять чанк-листы и передавать чанки максимально быстро после их создания. Потоки передаются по протоколу HTTP. Всё это говорит о том, что с новой технологией видео может доставляться с задержками не больше 4 с.
  • Обеспечивает отказоустойчивость. Нагрузка равномерно распределяется в кластере с помощью балансировщика. А транскодированные чанки дублируются на промежуточном сервере (шилдинге) или втором транскодирующем сервере. Зрители точно получат видео, даже если один из серверов даст сбой.
  • Снижает нагрузку на сеть. За счёт отсутствия централизованного хранилища нагрузка на сеть уменьшается. Для стабильной передачи контента требуется меньшая пропускная способность.

Как использовать отказоустойчивое транскодирование в стриминге

Мы уже внедрили разработку в нашу стриминговую платформу. Она доступна по умолчанию для всех клиентов.

Наша платформа использует передовые технологии в области передачи видео. С ней вы сможете без проблем доставлять трансляции 1 000 000+ зрителей на любые устройства в качестве до 8K с минимальными задержками и без буферизации.

Подведём итоги

  1. EdgeЦентр получила патент на новую технологию. Мы разработали систему отказоустойчивого транскодирования и выдачи потоков в формате HLS.
  2. Система представляет собой кластер из трёх или более серверов транскодирования, которыми управляет балансировщик нагрузки. Для доставки транскодированных потоков используется EdgeЦентр CDN.
  3. Балансировщик отдаёт серверам команды на транскодирование видео. Серверы преобразовывают поток в чанки и чанк-листы. Чанки отправляются пользователям по CDN с минимальными задержками.
  4. Система отказоустойчивого транскодирования подходит для стриминга с низкими задержками (в пределах 4 с), обеспечивает отказоустойчивость и помогает снизить нагрузку на сеть.
  5. Новая технология уже используется на нашей стриминговой платформе и доступна всем нашим клиентам.

Сделайте ваше видео доступным в высоком качестве на любых устройствах с помощью нашей стриминговой платформы.

Подпишитесь на полезную рассылку

Выгодные предложения и важные новости раз в месяц. Без спама

Нажимая кнопку «Подписаться», я даю согласие на получение рекламно-информационной рассылки согласно Политике