Как устроены онлайн-кинотеатры: техническая сторона
easy

Как устроены онлайн-кинотеатры: техническая сторона

Главное из подкаста «Запуск завтра».

Во втором сезоне подкаста «Запуск завтра» был выпуск об онлайн-кинотеатрах:

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

Герой — Михаил Жуков, технический директор сервиса Okko. Это огромный российский онлайн-кинотеатр, который есть во многих смарт-тв, в вебе и на мобильниках. Что внутри: 

Как начинается добавление фильма на площадку Okko

В каком формате передаются «сырые» фильмы

Где хранятся файлы фильмов

Как происходит кодирование? Что такое кодек?

Как обеспечивается переключение качества фильма?

Как фильмы защищают от пиратства? И про конфликт с Huawei

О разном уровне защиты на разных устройствах

Можно ли сломать защиту?

Как начинается добавление фильма на площадку Okko

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

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

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

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

Можно представить, что студия — это оптовик: у него есть много товара, который он отгружает конечным продавцам. Таких студий-оптовиков много, есть побольше и поменьше, есть чисто российские, есть представительства международных компаний. 

В каком формате передаются «сырые» фильмы

В межстудийном обмене обычно используется формат MXF. Видео может быть представлено совсем в сыром виде, например, передаётся каждый кадр. Это всё зажимается в код, который называется PEG 2000 — считается, что он без потерь. Там нет никакого потокового видеосжатия, просто лежит кадр за кадром. 

Такие файлы весят от 100 гигабайт до 1 терабайта. Мы видели файлы 1,5 ТБ — такое бывает.

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

От редакции: что значит «потоковое сжатие»

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

Например, может быть такой алгоритм: 

  1. Если у нас видео со скоростью 25 кадров в секунду, мы назначаем опорным каждый 25-й кадр. Опорные кадры мы передаём полностью. 
  2. Все остальные неопорные кадры мы анализируем: что в следующем кадре изменилось относительно предыдущего. Если что-то изменилось, мы это кодируем и передаём. Если не изменилось, мы это не кодируем и не передаём. 
  3. Получается, что между опорными кадрами передаётся только то, что изменилось. Этих данных может быть много, а может быть и мало. 

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

А если в сцене много всего происходит, то нужно постоянно кодировать эти изменения и передавать зрителю. Специальный алгоритм определяет, какие изменения считать изменениями, а какие — нет.

Где хранятся файлы фильмов

У нас два дата-центра: в Питере и в Москве. Исходники мы не зеркалируем, в этом нет необходимости, мы их храним только в Питере. Мы размещаемся в центре обработки данных, там высокая степень надёжности (Tier3) и всё безопасно, туда проход сотрудникам по специальным пропускам. Всё секретно и секьюрно.

Как происходит кодирование? Что такое кодек? 

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

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

Что такое «транскодирует»? Исходный файл, который мы скачали у студии, ни один мобильный телефон, ни один телевизор никогда в жизни не проиграет — он слишком хорош для этих устройств. Для того чтобы это стало возможным, для того чтобы просто сам видеокодек сложился, контейнер был понятен, — для этого нужно преобразовать этот крутой файл в понятные для устройств видеофайлы. 

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

Как обеспечивается переключение качества фильма?

Контент надо защитить от сетевых помех. Если у человека, например, не очень хорошие сетевые условия — например, он смотрит с мобильного телефона и у него ухудшилась сеть, — нужно переключиться на более низкий уровень качества скодированного видео, чтобы потом, когда сеть восстановится, опять можно было подняться на высокий уровень.

Поэтому каждый видеофайл кодируется не один раз, а 10–15 раз, под каждый шаг уровня качества. Скодированные файлы складываются в единый контейнер, а потом отдаются по запросу. Плеер сам адаптированно переключается между уровнями качества, при необходимости включает более хитрые протоколы: не MP4, а MPEG DASH или HTTP Live Streaming (протоколы для стриминга видео через http. — Ред.).

При этом у нас есть собственная разработка, которая позволяет не хранить все 10 версий фильма, а при необходимости преобразовывать некоторые версии на лету. 

Как фильмы защищают от пиратства? И про конфликт с Huawei

Все файлы защищены системой DRM — Digital rights Management, управление цифровыми правами. Это система, которая выдаёт лицензии на просмотр того или иного файла на том или ином устройстве. 

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

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

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

У нас большой парк устройств: смартфоны, Smart TV и так далее. Все эти устройства сейчас покрываются тремя системами DRM. И если ты поддерживаешь эти три, то ты покрываешь 99,9% всех устройств в мире. 

Сейчас, вследствие того что Америка наложила санкции на китайскую компанию Huawei, им приходится что-то с этим делать. Насколько я знаю, они выводят свою систему DRM, для того чтобы не зависеть от американского решения Widevine, которое у них сейчас.

О разном уровне защиты на разных устройствах

Не весь контент студии просят защищать одинаково. Например, SD-версии — версии стандартного разрешения — мало кого интересуют.

Если речь идёт про какой-нибудь контент 4К или 8К, его просят защищать очень серьёзно. И там уже запрещается использовать устройства, которые не могут обеспечить железный, хардварный уровень защиты.

Поэтому, например, в браузере фильм в качестве 4К, скорее всего, не откроется. Браузер обеспечивает уровень Widevine L3 — воспроизведение будет запрещено, потому что там в какой-то момент видеопоток оказывается в памяти и теоретически его можно оттуда достать.

Правообладатели тоже по-разному к этому относятся и могут требовать защиту сильнее или слабее.

Можно ли сломать защиту?

Золотое правило криптографии — защита считается устойчивой, если, для того чтобы её взломать, нужно потратить больше усилий и больше денег, чем стоимость того, что ты защитил. Конечно, всё можно сломать так или иначе.

Просто «сграбить» поток с нашего сервера или на компьютере не получится. Придётся постараться. Бывают варианты, но с ними тоже борются. В той же самой системе DRM существует так называемый black list — если какое-то устройство было сломано или скомпрометировано, то оно заносится в туда, и таким девайсам больше не выдаётся лицензия. Это всё тоже регулируется и апдейтится.

Многое другое — в подкасте

В полной версии подкаста — о правах на фильм, русской озвучке и переводе текста прямо в кадре; о распределении пиковых нагрузок при трансляции футбола; о CDN; сколько стоят фильмы и можно ли смотреть кино вертикально. Слушайте сегодня, ведь запуск — завтра :-)

Ведущий подкаста:

Самат Галимов

Редактор подкаста:

Юля Яковлева

Продюсер подкаста:

Павел Боровков

Звукорежиссёр:

Нина Мамотина

Дизайнер обложки

подкаста:

Пётр Сутупов

Редакторы конспекта:

Сервис «Чистовик», Максим Ильяхов

Корректор «Кода»:

Ира Михеева

Вёрстка статьи:

Кирилл Климентьев

Соцсети:

Алина Грызлова

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy