О проекте
Всего было обработано более 2 млн карточек с героями ВОВ, а стрим длился с 9 до 20 мая.«Бессмертный полк» в режиме онлайн работал следующим образом. Пользователи загружали фотографии с именами ветеранов Великой Отечественной войны, указывая годы жизни.
Из множества карточек формировался видеофайл, участнику акции сообщалось точное время, когда фотографии его родственников будут транслироваться в режиме онлайн на официальном сайте. Всего было обработано более 2 млн карточек с героями ВОВ, а стрим длился с 9 до 20 мая.

Техническая сторона
Разработкой приложения для приёма фотографий и созданием контента занималась компания Aventica. Они получали фотографии и данные ветеранов ВОВ, делали дизайн карточке и формировали из них видеофайлы. Также в их задачи входил контроль содержимого: нельзя было допустить, чтобы злоумышленники загружали нежелательные фотографии. Размер одного видеофайла с карточками был довольно большой — порядка 20 Гб. Желающих разместить фото своих родственников оказалось так много, что сотрудники «Авентики» едва успевали формировать и загружать видео, длительность которого составляла 9 часов.
Что входило в задачи Platformcraft?
- Оптимизация ПО под требования проекта;
- Создание потока из видеофайлов;
- Обеспечение непрерывного источника трансляции;
- Соблюдение тайм-кода;
- Постоянный контроль за работой сервиса 24/7;
- Публикация сформированного потока в CDN-сеть, с которой уже шёл просмотр эфира.
Каким образом выглядел алгоритм работы?
- Файл с видео загружается в хранилище по протоколу SFTP, т. к. заливать файлы такого размера через браузер проблематично, иначе он просто будет зависать и закрываться.
- Формируется плейлист. Исходные файлы воспроизводятся в заданной последовательности с сегментированием на чанки протокола HLS (HTTP Live Streaming).
- Начинается стрим. «Бессмертный полк» онлайн запустился строго в запланированное время 9 мая.
- Ведётся запись стрима по 8 часов. Пользователь может промотать запись и найти видео с нужным фрагментом в течение этого времени.
- Догружается новый файл. Продолжение стрима нужно высчитать с точностью до долей секунды.

Выводы
Основная сложность заключалась в обеспечении бесперебойности трансляции с учётом огромного объёма загружаемых данных. Не всякий сервис может работать с файлами размером в 20 Гб. Благодаря своевременной и грамотной оптимизации, стрим успешно продлился 19 дней, 22 часа и 33 минуты — без прерывания.
Благодаря своевременной и грамотной оптимизации, стрим успешно продлился 19 дней, 22 часа и 33 минуты — без прерывания.