Как фильмы появляются в онлайн-кинотеатрах

Онлайн-кинотеатр не может просто купить и залить фильм на платформу: сначала видео проходит техническую обработку, снабжается сопроводительными медиа и заносится в библиотеку. Технический руководитель онлайн-кинотеатра KION Александр Шаталов рассказал, что происходит с кинолентами перед тем, как они оказываются в KION.

e13120fe01699dadf5a221e8bab700a6.jpg

Как пополняется фильмотека

С собственным производством всё просто — эксклюзивные права на фильмы или сериалы принадлежат МТС. В остальных случаях лицензию нужно купить у правообладателей. Это не всегда авторы ленты — чаще студии-дистрибьюторы. Например, недавно KION подписал контракты с «Централ Партнершип» (производителем и дистрибьютором фильмов) и «Вольга» (дистрибьютором).

После подписания договора группа по работе с материалами онлайн-кинотеатра получает исходные данные, кладёт их в защищённое файловое хранилище (в нашем случае — на базе S3) и приступает к подготовке материалов для публикации в сервисе.

23aa8693ac301b21384cef675b885c2f.png

Кто проверяет исходный материал

Исходный файл попал к видеоинженерам, и всё заверте… и, следите за руками, начинаются следующие манипуляции:

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

Например, мы работаем в цветовом пространстве YUV и со средним битрейтом 20–25 Мбит/с для HD-формата.

А значит, видеоинженер, превращая исходник в мастер-файл:

  • собирает звук в Dolby Digital 5.1, если в составе материалов есть такой формат

  • монтирует видео, если нужно что-то исправить

  • нормализует звук, чтобы его уровень на клиентских устройствах не был слишком тихим или слишком громким

  • подготавливает субтитры

  • размывает и цензурирует постеры и доп. материалы, чтобы они соответствовали возрастному рейтингу

  • монтирует графические элементы (заставки, анимации, водяные знаки)

Серьёзная ошибка

В исходном файле находится не только фильм, но и проморолики с тизерами, которые тоже заливаются в онлайн-кинотеатр.

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

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

Соблюдение законодательства для защиты пользователя

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

Сейчас наша задача — грамотно работать с возрастными ограничениями. Делать это вручную становится всё сложнее, ведь контента становится всё больше. Поэтому вместе с Центром искусственного интеллекта МТС (MTS AI) мы разрабатываем алгоритм автоматизированного отсмотра и выявления нежелательных сцен в контенте. Он способен, например, помещать метки с подозрительными сценами в ленту, чтобы человек вручную их проверил. Это снизит нагрузку на наших сотрудников.

Как фильм доставляется на устройства

Параллельно с подготовкой фильма к публикации в сервисе мы собираем метаинформацию (описание и длительность), указываем актёров, сценаристов и режиссёров. Прикладываем логотипы, картинки, постеры и всё это загружаем в нашу CMS. Она отвечает за хранение данных о фильме и за весь его жизненный цикл: отображение в KION«е, модель распространения, допустимые для просмотра устройства и т. д.

Когда CMS-запись готова, эстафету принимает ТВ-платформа — техническое ядро всего сервиса. Она содержит информацию о клиентах и подписках, управляет авторизацией и раздачей видеопотока.

Что делает ТВ-платформа?

  • Кодирует фильм, параллельно шифруя его для предотвращения несанкционированного доступа.

  • Упаковывает метаинформацию из CMS в технические сущности для доставки на устройство пользователя.

  • Упаковывает мастер-файл в контейнер, необходимый для доставки видео. У нас используются MPEG-DASH и HLS, но сначала контент упаковывается только в протокол MPEG-DASH (почему так, расскажем чуть позже).

  • Делает контент доступным для покупки и просмотра на витрине клиентского устройства.

MPEG-DASH — международный стандарт адаптивной передачи данных. HLS — протокол передачи данных, разработанный Apple для своих устройств. Принципы работы у них одинаковые: файл «пакуется» в контейнер, который содержит манифест и плейлист.

В манифесте указывается информация для принимающей стороны: характеристики аудио, видео, ключ DRM и прочее. Внутри плейлиста содержатся ссылки на чанки — двухсекундные (MPEG-DASH) или шестисекундные (HLS) фрагменты видео, которые последовательно скачиваются и воспроизводятся на устройстве.

Зачем шифровать фильмы

Мы должны защитить контент от нелегального копирования и распространения, это требование зафиксировано в ГК РФ. Традиционно для защиты авторского контента используется технология DRM.

Её реализуют либо единым решением для всех клиентских устройств (например, на базе CAS/DRM Verimatrix), либо в виде отдельных DRM-систем под каждую операционную систему:

  • Google — Widevine

  • Microsoft — PlayReady

  • Apple — FairPlay

Почему DRM так много? Исторически единого стандарта DRM не существовало. Каждая крупная компания хотела сделать свой софт привлекательнее для контент-производителей. И все они стремились предложить более простую в использовании и более устойчивую к взлому технологию.

Раньше мы упаковывали всё в MPEG-DASH. Технология Common Encryption позволяла устройству выбирать «родной» DRM для дешифровки и использовать аппаратные возможности чипсета, а не оперативную память. И даже на устройства Apple мы доставляли контент в формате MPEG-DASH с шифрованием PlayReady, для чего использовался кастомный плеер со встроенным DRM-клиентом.

Делалось это для экономии места в Origin — хранилище подготовленного контента. «Родной» для Apple DRM поддерживает только контейнер HLS. Если бы мы хранили мастер-файлы и в MPEG-DASH, и в HLS-контейнерах, места в Origin для хранения исходного Video-on-Demand-контента (VoD) (фильмы, сериалы) потребовалось бы вдвое больше.

Вскоре мы обнаружили, что MPEG-DASH сильно нагружает CPU устройств от Apple и приводит к ускоренной разрядке батареи, а на старых девайсах — и к «тормозам» при воспроизведении видео. И чем старше поколение, тем хуже ситуация. Пришлось планировать переход на нативный для Apple DRM FairPlay.

Нашли два возможных решения:

  1. Хранить ещё одну копию контента в паре HLS + FairPlay.

  2. Пытаться шифровать VoD-материал и переводить MPEG-DASH в HLS «на лету», закрывая его DRM FairPlay вместо Common Encryption.

Подсчитали затраты, и оказалось, что хранить дубль в 20 Гб для одного фильма — слишком дорого, а значит первый вариант отпадает. Так у нас появился JITX-сервер, выполняющий функцию шифрования (Just-in-Time encryption) и переупаковки (Just-in-Time packaging).

be1ac7f769521286ca0bd98104eb8d0a.png

И вот мы получаем запрос на воспроизведение от устройства на iOS. Сразу же включаются в работу JITX-серверы и закипает работа. Что они делают?

  • забирают контент из хранилища Origin

  • дешифруют его как обычное клиентское устройство

  • конвертируют исходный манифест MPEG-DASH (mpd) в манифест формата m3u8 и упаковывают в HLS

  • шифруют технологией DRM FairPlay

  • отправляют контент клиенту через CDN, что позволяет не ходить повторно в JITX, если этот же контент будут запрашивать другие пользователи

Из плюсов: оба протокола — и MPEG-DASH, и HLS — поддерживают кодек MP4, а значит нам не пришлось кроме изменения стримингового протокола ещё и менять видеокодек. Из минусов: в MPEG-DASH длительность фрагментов — 2 секунды, а в HLS — 6 секунд (по рекомендации Apple). Поэтому пришлось научить JITX-сервер склеивать три фрагмента в один.

Были опасения, что эта конструкция повлияет на скорость отдачи файлов. Но задержка была около 150–200 миллисекунд, и на пользовательский опыт это не влияло.

И вот фильм у вас

После всех манипуляций на нашей стороне контент готов к показу пользователям. Вы можете зайти в KION, выбрать подходящий фильм и кликнуть по нему. А нам остаётся только пожелать вам приятного просмотра!

© Habrahabr.ru