Как стать автором
Обновить
2166.09
МТС
Про жизнь и развитие в IT

Путь видео в онлайн-кинотеатрах от «стекла до стекла». Middleware — ядро, подписки, сервисы, витрина

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1K

Привет, Хабр! Снова с вами Дмитрий Новожилов — техлид онлайн-кинотеатра KION. В прошлый раз я рассказал, откуда берется контент на киносервисах и как он обрабатывается. Для этого разобрал источники данных и элемент Headend, включающий пункт приема сигнала, кодер и пакетайзер.

На предварительных этапах контент нормализуется, делится на чанки, обрабатывается DRM и попадает в «сердце видеосервиса» — Middleware. Это тот самый элемент, который управляет контентом, когда вы открываете приложение на умном телевизоре или смартфоне. Он обеспечивает логику работы витрины: когда вы заходите в сервис, показывает доступный на площадке контент. Затем вы выбираете нужный фильм и получаете его через ближайший узел CDN.

В этом посте я расскажу, какие компоненты и сервисы объединяются термином Middleware и что конкретно делает этот комплекс.

Обогащение контента метаинформацией

Мы рассмотрели, как контент (физические кадры видеоряда) преобразуется в финальную версию того, что в конечном итоге вы будете видеть на своем экране. В подавляющем большинстве платформ после кодера с видеопотоком (его качеством, разрешением, цветопередачей и так далее) уже ничего не происходит. Он не меняется: только преобразуется транспорт, как именно тот или иной кадр видео будет доставлен до вас. Если представить, что 1 секунда видео — это 24 кадра, а каждый кадр — это условно обычная статическая картинка, то вот с ней никаких изменений уже не происходит. Именно поэтому весь контент с Headend можно смело перекладывать на Origin, о котором расскажу в следующем тексте.

Но сам по себе видеоряд неинформативен. Представьте, что вы пришли в кинотеатр, а там на афише увидели бы «Film_№1.mp4», «Film_№2.mp4». Совсем не понятно, что именно можно посмотреть, когда идет сеанс, сколько он стоит и так далее. Вот эта информация о контенте индустриальным языком называется метаданными. Их формирование идет параллельно загрузке самого видеоряда на платформу. И за работу с этим процессом уже отвечает Middleware.

При публикации контента в Middleware к нему добавляется вся нужная информация. Если мы говорим про Video on Demand (фильмы, сериалы и так далее), то это будет название, краткое описание, длительность, состав актеров, режиссеров и даже рейтинг на разных платформах. Я уже не говорю, что добавятся трейлеры и большое количество постеров, баннеров, иконок и других статических изображений, нужных для удобной навигации в приложении. У Live TV (эфирных каналов) также большое количество постеров, баннеров, иконок и других статических изображений, которые будут отображаться в вашем приложении для удобной навигации. Если мы говорим про Live TV (эфирные каналы), то у них тоже есть описание и программа передач (ее еще называют EPG — Electronic Program Guide), которая может загружаться раз в неделю, а потом обновляться, если идут какие-то сдвиги в эфирной сетке.

Обеспечение биллинга

Метаинформация помогает понять, что это за фильм или серия и действительно ли стоит тратить на нее время. Но, как и в любом кинотеатре, перед просмотром вам нужно оплатить билет. Это одна из фундаментальных функций комплекса сервисов, которые я объединил в термин Middleware. Она выполняется в рамках Business Support System (BSS).

BSS — индустриальное название большого и сложного сервиса, который отвечает за все связанное с бизнес-процессами — биллинг. Этот термин пришел из телекома: сначала он использовался в фиксированной (проводной) связи, затем пришел в мобильную, а потом стал использоваться в так называемых Valued Added Service (VAS), которые сейчас стали полноценными и независимыми ИТ-системами. К ним как раз и относятся онлайн-кинотеатры.

Если не вдаваться глубоко в историю в этом месте, то кратко: BSS ориентирован именно на поддержку взаиморасчетов с клиентами. Как только вы зарегистрировались в онлайн-кинотеатре, к вам привязывается внутренний счет. Этот счет вы можете пополнять, и с него могут списываться средства за покупки. В терминах индустрии назовем их подписками. Есть более-менее стандартные варианты подписок, предоставляемых большинством кинотеатров:

  • SVoD: (Subscription Video on Demand). Этот вариант предусматривает помесячную оплату. Есть также стандартные варианты с автоматическим продлением либо без него. Другими словами, BSS самостоятельно отслеживает даты подключений, продлевает вашу подписку и списывает при этом средства, если это нужно.

  • AVoD: (Advertising Video on Demand). Этим, я уверен, пользовалось подавляющее большинство из вас. Вы смотрите контент бесплатно, но в начале или периодически в середине фильма вам включают рекламу, которую еще и нельзя пропустить. Это и есть AVoD-подписка. Платформа и создатели контента получают деньги с рекламодателей, а вы «платите» просмотром рекламы.

  • Time-based Video on Demand (TVoD). Пользователь платит за аренду контента на определенный период. Например, можно в течение трех месяцев смотреть фильм сколько угодно раз, а потом он вновь становится недоступным.

  • Electonic Sell Through (EST) или Download To Own (DTO). Пользователь платит один раз и имеет неограниченный доступ к контенту.

  • Pay Per View (PPV). Это частный случай TVoD, который чаще всего применяется к передачам или эфирным каналам. Например, вы хотите посмотреть один футбольный матч в прямом эфире, но не собираетесь подписываться на спортивный канал по модели SVoD. Для таких бизнес-сценариев можно использовать PPV: вам будет открыт доступ к каналу только в определенное временное окно.

FrontEnd

Итак, мы загрузили видеоряд, добавили ему описание и постеры, сформировали стоимость просмотра и возможность это оплатить. Но теперь нам надо дать возможность клиенту этим всем воспользоваться. И вот тут в процесс вступает другая часть платформы Middleware — FrontEnd. Это тот комплекс, который непосредственно взаимодействует с вашим приложением на телефоне или телевизоре.

Тут я хочу подчеркнуть масштаб этого комплекса: представьте, что у нас миллионы пользователей одновременно находятся в своих приложениях и что-то листают, читают, просматривают. Эти запросы должны кем-то приниматься и обрабатываться настолько быстро, насколько это вообще возможно. Есть метрики, которые показывают, что задержки ответа от FrontEnd клиенту уже вызывают негатив. В терминах индустрии — создают Bad UX. Такие запросы обычно весят мало — это не видеопоток, где данные нельзя сжать, поэтому они и исчисляются в терабитах в секунду. Зато они выделяются своей частотой — это десятки тысяч RPS (Request per second).

Один из важных самых важных FrontEnd-сервисов — это витрина. Как только вы авторизовались в приложении (а в большинстве случаев даже до авторизации), можете просматривать информацию о всем доступном контенте. Видеть постеры, читать описание, смотреть трейлеры. Почти вся функциональность витрины будет открыта даже без оплаты.

Одна из отдельных функций витрины — это система рекомендаций. Да, саму подборку рекомендаций для вас производит другой модуль Middleware — BigData (возможно даже с участием AI) на основе большого числа метрик, но отображает на вашем устройстве результат именно витрина.

Но и это еще не все. При регистрации (а чаще даже ранее, при запуске приложения) вы проходите три стадии, которые объединяют индустриальным термином AAA или «ТриплЭй»:

  • Аутентификацию: ответ на вопрос «Кто именно хочет воспользоваться сервисом?». Упрощенно это ввод логина и пароля, по которым система идентифицирует вас как уникального пользователя.

  • Авторизацию: ответ на вопрос «К чему есть доступ у этого пользователя?». В вашем аккаунте будут представлены сервисы которые, например, вы уже оплатили. Или доступные только на вашем устройстве или в вашем регионе.

  • Аккаунтинг: ответ на вопрос «Что именно вы сейчас делаете в сервисе?». В нашем случае это можно сопоставить с отслеживанием доступности тех или иных функций в каждый момент времени.

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

Все подписки будут привязаны к вашему аккаунту, а ваш аккаунт — ко всем устройствам. И тут хотел бы затронуть тему Terminal Management System (TMS) — еще одного важного элемента Middleware, который не всегда существует в явном виде. У него много функций: например, через него вы можете отправить подробную информацию о каком-либо сбое приложения. Этих данных будет достаточно, чтобы найти и исправить ошибку. Этот сервис также может отвечать за количество устройств, которые вы можете одновременно использовать. Например, некоторые правообладатели требуют, чтобы один и тот же контент нельзя было смотреть параллельно более чем на 2–5 устройствах у одного пользователя. И так далее. Ну и мы плавно перешли к еще одной составляющей MiddleWare — Operation Support System (OSS).

Функции OSS

OSS — это такой же большой и сложный комплекс, как и BSS. Я перечислю только основные:

  • Мониторинг всех систем онлайн-кинотеатра.

  • Предоставление инструментов для выявления и исправления любых сбоев.

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

  • Трассировка. Она может присутствовать не у всех кинотеатров, но ее надо озвучить. Если пользователь столкнулся с проблемой при работе онлайн-кинотеатра, то ему не обязательно обращаться в техническую поддержку. В отчетах будет выстроена последовательность всех действий, которые привели к ошибке, и найти причину уже не так сложно. На всякий случай подчеркну, что все персональные данные в подобного рода системах защищены. Инженеры технической поддержки оперируют, скорее, некими идентификаторами. Им не нужно знать ваше имя чтоб решить проблему — они будут работать с уникальным набором символов, который позволяет отследить все действия. Связать этот идентификатор именно с вами нельзя без наивысшего уровня доступа, сопоставимого с банковской сферой.


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

В следующей части я расскажу дальше про прохождение видеопотока, который после пакетайзера попадает на Origin. Готов ответить на все возникшие вопросы в комментариях. Хорошего дня!

Теги:
Хабы:
Всего голосов 4: ↑3 и ↓1+4
Комментарии0

Полезные ссылки

Jetpack Compose для Android TV: как происходит перемещение фокуса

Время на прочтение10 мин
Количество просмотров1.3K
Всего голосов 15: ↑15 и ↓0+21
Комментарии0

Remote Config и A/B-эксперименты: история разработки и основные возможности

Время на прочтение8 мин
Количество просмотров1.2K
Всего голосов 5: ↑5 и ↓0+8
Комментарии0

Путь видео в онлайн-кинотеатрах от «стекла до стекла». Часть первая: источники данных и headend

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.3K
Всего голосов 5: ↑5 и ↓0+9
Комментарии7

Доверяй, но проверяй: как мы в KION идем по пути продуктовых событий

Время на прочтение9 мин
Количество просмотров1.1K
Всего голосов 4: ↑4 и ↓0+7
Комментарии4

Machine Learning в онлайн-кинотеатрах: как повысить время смотрения и понять, что одного ML мало. Часть 1

Время на прочтение5 мин
Количество просмотров2.1K
Всего голосов 5: ↑4 и ↓1+6
Комментарии8

Информация

Сайт
www.mts.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия